Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

buzz-pair: panics on wss:// relays — rustls CryptoProvider never installed

Abierto Apto para principiantes
#7,927 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
92/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
rust
Área
cli, security

Línea de trabajo

Comienza con crates/buzz-pairing-cli/Cargo.toml y el punto de entrada principal; después, compara la configuración de rustls en crates/buzz-cli/src/lib.rs y su comentario sobre la dependencia. Verifica que la configuración del provider coincida con la de los crates hermanos; luego ejecuta los comandos documentados de source y target contra un relay wss:// y confirma que el handshake se completa sin un panic.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

buzz-pair panics on any wss:// relay because no rustls CryptoProvider is installed. Since the subcommand defaults to wss://relay.damus.io, the documented quick-start fails out of the box.

Repro
cargo build --release -p buzz-pairing-cli
./target/release/buzz-pair source --relay wss://relay.damus.io
Actual

The QR URI prints, then:

Waiting for target to scan QR code...

thread 'main' panicked at rustls-0.23.42/src/crypto/mod.rs:249:14:
Could not automatically determine the process-level CryptoProvider from Rustls crate features.
Call CryptoProvider::install_default() before this point to select a provider manually, or make
sure exactly one of the 'aws-lc-rs' and 'ring' features is enabled.

ws:// URLs are unaffected, so it reproduces only against TLS relays — i.e. every real one.

Cause

The sibling binaries install the provider explicitly; buzz-pairing-cli does not. Compare crates/buzz-cli/src/lib.rs:

let _ = rustls::crypto::ring::default_provider().install_default();

and the comment on buzz-cli's own rustls dependency explaining why a direct dep with the ring feature is needed (feature unification across the workspace otherwise leaves rustls unable to pick a provider).

Fix

Same two changes as the sibling crates — add to crates/buzz-pairing-cli/Cargo.toml:

rustls = { version = "0.23", default-features = false, features = ["ring", "std"] }

and at the top of main():

let _ = rustls::crypto::ring::default_provider().install_default();

Verified locally: after this, source/target complete a full handshake over wss://.

Environment
  • Commit 4cd82f5 (main, 2026-09-13)
  • macOS 26.6.2, arm64, toolchain via hermit
Lenguaje dominante
Rust
Estrellas
33.7k
Forks
4.4k
Merge medio
2 d 13 h
PR fusionados (30 d)
185

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de block/buzz

Todos los issues de block/buzz

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.