From bf8233af614f36e482302c5ad117a1993ea8c4c3 Mon Sep 17 00:00:00 2001 From: "glm-5.1" Date: Tue, 2 Jun 2026 10:32:29 +0000 Subject: [PATCH] fix: add rand dev-dep, install rustls CryptoProvider in TLS tests, fix iroh OsRng import --- Cargo.lock | 61 +++++++++++++++---- crates/wraith-core/Cargo.toml | 3 +- .../src/transport/iroh_transport.rs | 4 +- crates/wraith-core/src/transport/tls.rs | 9 +++ 4 files changed, 63 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4274011..ed69c37 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -27,7 +27,7 @@ checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", "cipher", - "cpufeatures", + "cpufeatures 0.2.17", ] [[package]] @@ -495,7 +495,18 @@ checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" dependencies = [ "cfg-if", "cipher", - "cpufeatures", + "cpufeatures 0.2.17", +] + +[[package]] +name = "chacha20" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.0", + "rand_core 0.10.1", ] [[package]] @@ -646,6 +657,15 @@ dependencies = [ "libc", ] +[[package]] +name = "cpufeatures" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +dependencies = [ + "libc", +] + [[package]] name = "crc" version = "3.4.0" @@ -730,7 +750,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16182b4f39a82ec8a6851155cc4c0cda3065bb1db33651726a29e1951de0f009" dependencies = [ "aead", - "chacha20", + "chacha20 0.9.1", "crypto_secretbox", "curve25519-dalek", "salsa20", @@ -746,7 +766,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9d6cf87adf719ddf43a805e92c6870a531aedda35ff640442cbaf8674e141e1" dependencies = [ "aead", - "chacha20", + "chacha20 0.9.1", "cipher", "generic-array", "poly1305", @@ -777,7 +797,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "curve25519-dalek-derive", "digest", "fiat-crypto", @@ -1408,6 +1428,7 @@ dependencies = [ "cfg-if", "libc", "r-efi 6.0.0", + "rand_core 0.10.1", "wasip2", "wasip3", ] @@ -3058,7 +3079,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" dependencies = [ - "cpufeatures", + "cpufeatures 0.2.17", "opaque-debug", "universal-hash", ] @@ -3070,7 +3091,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "opaque-debug", "universal-hash", ] @@ -3358,6 +3379,17 @@ dependencies = [ "rand_core 0.9.5", ] +[[package]] +name = "rand" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2e8e8bcc7961af1fdac401278c6a831614941f6164ee3bf4ce61b7edb162207" +dependencies = [ + "chacha20 0.10.0", + "getrandom 0.4.2", + "rand_core 0.10.1", +] + [[package]] name = "rand_chacha" version = "0.3.1" @@ -3396,6 +3428,12 @@ dependencies = [ "getrandom 0.3.4", ] +[[package]] +name = "rand_core" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" + [[package]] name = "rcgen" version = "0.13.2" @@ -3609,7 +3647,7 @@ dependencies = [ "byteorder", "bytes", "cbc", - "chacha20", + "chacha20 0.9.1", "ctr", "curve25519-dalek", "delegate", @@ -4014,7 +4052,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "digest", ] @@ -4025,7 +4063,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "digest", ] @@ -4145,7 +4183,7 @@ dependencies = [ "aes", "aes-gcm", "cbc", - "chacha20", + "chacha20 0.9.1", "cipher", "ctr", "poly1305", @@ -5557,6 +5595,7 @@ dependencies = [ "async-trait", "ipnetwork", "iroh", + "rand 0.10.1", "rand_core 0.6.4", "rcgen 0.14.8", "russh", diff --git a/crates/wraith-core/Cargo.toml b/crates/wraith-core/Cargo.toml index 33b224f..1f69e3d 100644 --- a/crates/wraith-core/Cargo.toml +++ b/crates/wraith-core/Cargo.toml @@ -36,4 +36,5 @@ wraith-core = { path = ".", features = ["testutil", "tls", "iroh"] } tempfile = "3" rcgen = "0.14" rand_core = "0.6" -ssh-key = { version = "0.6", features = ["ed25519", "alloc"] } \ No newline at end of file +ssh-key = { version = "0.6", features = ["ed25519", "alloc"] } +rand = "0.10.1" diff --git a/crates/wraith-core/src/transport/iroh_transport.rs b/crates/wraith-core/src/transport/iroh_transport.rs index a341ded..2d5d666 100644 --- a/crates/wraith-core/src/transport/iroh_transport.rs +++ b/crates/wraith-core/src/transport/iroh_transport.rs @@ -151,7 +151,7 @@ mod tests { #[test] fn iroh_transport_describe_format() { - let node_id: NodeId = iroh::SecretKey::generate(rand::rngs::OsRng) + let node_id: NodeId = iroh::SecretKey::generate(rand_core::OsRng) .public() .into(); let desc = format!("iroh://{}", node_id.to_z32()); @@ -160,7 +160,7 @@ mod tests { #[tokio::test] async fn iroh_transport_connect_builds_endpoint() { - let node_id: NodeId = iroh::SecretKey::generate(rand::rngs::OsRng) + let node_id: NodeId = iroh::SecretKey::generate(rand_core::OsRng) .public() .into(); let transport = IrohTransport::new(node_id, None, None).await.unwrap(); diff --git a/crates/wraith-core/src/transport/tls.rs b/crates/wraith-core/src/transport/tls.rs index d247bb4..230c9a9 100644 --- a/crates/wraith-core/src/transport/tls.rs +++ b/crates/wraith-core/src/transport/tls.rs @@ -222,8 +222,13 @@ impl ServerCertVerifier for NoVerifier { mod tests { use super::*; use rcgen::{CertificateParams, KeyPair}; + use rustls::crypto::aws_lc_rs::default_provider; use tokio::io::{AsyncReadExt, AsyncWriteExt}; + fn ensure_crypto_provider() { + let _ = default_provider().install_default(); + } + fn generate_self_signed_cert() -> (CertificateDer<'static>, PrivateKeyDer<'static>) { let params = CertificateParams::new(vec!["localhost".to_string()]).unwrap(); let key_pair = KeyPair::generate().unwrap(); @@ -259,6 +264,7 @@ mod tests { #[tokio::test] async fn tls_connect_insecure_self_signed() { + ensure_crypto_provider(); let (cert_der, key_der) = generate_self_signed_cert(); let acceptor = TlsAcceptor::bind( @@ -299,6 +305,7 @@ mod tests { #[tokio::test] async fn tls_acceptor_returns_server_name() { + ensure_crypto_provider(); let (cert_der, key_der) = generate_self_signed_cert(); let acceptor = TlsAcceptor::bind( @@ -329,6 +336,7 @@ mod tests { #[tokio::test] async fn tls_full_client_to_server_connection() { + ensure_crypto_provider(); let (cert_der, key_der) = generate_self_signed_cert(); let acceptor = TlsAcceptor::bind( @@ -365,6 +373,7 @@ mod tests { #[tokio::test] async fn tls_acceptor_bind_port_zero_assigns_ephemeral() { + ensure_crypto_provider(); let (cert_der, key_der) = generate_self_signed_cert(); let acceptor = TlsAcceptor::bind(