use-rustls-ring transitively enables rustls/default (aws-lc-rs), breaking ring-only builds
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 76/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Tranquilla
- Stack tecnologico
- rust
- Ambito
- build-system
Direzione di ricerca
Inizia con le definizioni delle feature Cargo per rustls-ring e rustls mostrate nell’issue, quindi esegui cargo tree -e features per confermare la catena di feature attuale. Aggiorna i riferimenti alle feature opzionali di rustls in modo che use-rustls-ring non abiliti rustls/default e verifica che le build ring-only non includano più aws-lc-rs.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
In 0.25.0 the rustls-ring feature is defined as:
rustls-ring = [
"webpki-roots",
"dep:rustls",
"rustls/ring",
"rustls/logging",
"rustls/std",
"rustls/tls12",
]
The "rustls/ring" entries (without ?) also activate the crate's explicit rustls feature:
rustls = [
"webpki-roots",
"dep:rustls",
"rustls/default",
]
which enables rustls/default, i.e. the aws-lc-rs provider. So a downstream crate asking for use-rustls-ring (expecting ring only) ends up with both ring and aws-lc-rs enabled on rustls. cargo tree -e features shows the chain:
electrum-client feature "rustls"
└── electrum-client feature "rustls-ring"
└── electrum-client feature "use-rustls-ring"
Consequences downstream: rustls can no longer auto-select a process-level CryptoProvider, so any other crate in the same binary that relies on the process default panics on first TLS use with:
Could not automatically determine the process-level CryptoProvider from Rustls crate features.
(electrum-client itself is unaffected since it selects its provider explicitly.) We hit this in a project after bumping electrum-client 0.21 -> 0.25: the shared rustls went from ring only to ring + aws-lc-rs + default, and an unrelated tokio-tungstenite connection in the same binary started panicking.
Suggested fix
Use the ? syntax so rustls-ring does not activate the rustls feature:
rustls-ring = [
"webpki-roots",
"dep:rustls",
"rustls?/ring",
"rustls?/logging",
"rustls?/std",
"rustls?/tls12",
]
(0.21 did not have this problem; the regression came with the feature reshuffle in later releases.)
- Lingua principale
- Rust
- Stelle
- 89
- Fork
- 87
- Merge medio
- 1h 25m
- PR unite (30g)
- 4
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di bitcoindevkit/rust-electrum-client
-
[Hardening] Reject non-object JSON notifications without panicking (F-008)Forse già presa Una pull request collegata a questa issue è aperta o già unita. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
[Hardening] Validate legacy block_headers length before slicing (F-007)Forse già presa Una pull request collegata a questa issue è aperta o già unita. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
bitcoindevkit/rust-electrum-client#221 · 1 commento ·
-
discussion new feature
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
bitcoindevkit/rust-electrum-client#211 · 2 commenti ·
-
Rework CI to use `cargo-rbmt`Forse di nuovo libera @luisschwab l’ha presa 205 giorni fa e non c’è nessuna pull request aperta. Aperta
bitcoindevkit/rust-electrum-client#202 · 1 assegnatario ·
Tutte le issue di bitcoindevkit/rust-electrum-client
Issue simili
-
Panic on live viewport resize when unstyled elements exist in display: none subtreeForse già presa @GoCoder7 l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
DioxusLabs/blitz#1488 ·
I maintainer di solito rispondono entro 1 giorno
-
🏷️ good first issue enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
S-Needs triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
vectordotdev/vrl#2042 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno