From f2e4d82f87416a9b87595fd138572d79e6e2ce92 Mon Sep 17 00:00:00 2001 From: Pierre HUBERT Date: Mon, 3 Feb 2025 20:57:49 +0100 Subject: [PATCH] Fix rand breaking changes --- Cargo.lock | 97 +++++++++++++++++++++++++++++---------- src/data/totp_key.rs | 2 +- src/utils/string_utils.rs | 9 +--- 3 files changed, 77 insertions(+), 31 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c04c15e..8a1ac06 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -74,7 +74,7 @@ dependencies = [ "mime", "percent-encoding", "pin-project-lite", - "rand", + "rand 0.8.5", "sha1", "smallvec", "tokio", @@ -184,7 +184,7 @@ dependencies = [ "actix-web", "anyhow", "derive_more 1.0.0", - "rand", + "rand 0.8.5", "serde", "serde_json", "tracing", @@ -331,7 +331,7 @@ dependencies = [ "getrandom 0.2.15", "once_cell", "version_check", - "zerocopy", + "zerocopy 0.7.35", ] [[package]] @@ -631,7 +631,7 @@ dependencies = [ "mailchecker", "mime_guess", "qrcode-generator", - "rand", + "rand 0.9.0", "serde", "serde_json", "serde_yaml", @@ -936,7 +936,7 @@ dependencies = [ "hkdf", "hmac", "percent-encoding", - "rand", + "rand 0.8.5", "sha2", "subtle", "time", @@ -999,7 +999,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ "generic-array", - "rand_core", + "rand_core 0.6.4", "subtle", "zeroize", ] @@ -1011,7 +1011,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array", - "rand_core", + "rand_core 0.6.4", "typenum", ] @@ -1166,7 +1166,7 @@ dependencies = [ "hkdf", "pem-rfc7468", "pkcs8", - "rand_core", + "rand_core 0.6.4", "sec1", "subtle", "zeroize", @@ -1250,7 +1250,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ - "rand_core", + "rand_core 0.6.4", "subtle", ] @@ -1405,7 +1405,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ "ff", - "rand_core", + "rand_core 0.6.4", "subtle", ] @@ -1945,7 +1945,7 @@ dependencies = [ "k256", "p256", "p384", - "rand", + "rand 0.8.5", "serde", "serde_json", "superboring", @@ -2027,7 +2027,7 @@ dependencies = [ "base64 0.22.1", "bincode", "log", - "rand", + "rand 0.8.5", "reqwest", "serde", "serde_json", @@ -2198,7 +2198,7 @@ dependencies = [ "num-integer", "num-iter", "num-traits", - "rand", + "rand 0.8.5", "smallvec", "zeroize", ] @@ -2477,7 +2477,7 @@ version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" dependencies = [ - "zerocopy", + "zerocopy 0.7.35", ] [[package]] @@ -2531,8 +2531,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha", - "rand_core", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.0", + "zerocopy 0.8.14", ] [[package]] @@ -2542,7 +2553,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.0", ] [[package]] @@ -2554,6 +2575,16 @@ dependencies = [ "getrandom 0.2.15", ] +[[package]] +name = "rand_core" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b08f3c9802962f7e1b25113931d94f43ed9725bebc59db9d0c3e9a23b67e15ff" +dependencies = [ + "getrandom 0.3.1", + "zerocopy 0.8.14", +] + [[package]] name = "redox_syscall" version = "0.5.3" @@ -2679,7 +2710,7 @@ dependencies = [ "num-traits", "pkcs1", "pkcs8", - "rand_core", + "rand_core 0.6.4", "sha2", "signature", "spki", @@ -2939,7 +2970,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ "digest", - "rand_core", + "rand_core 0.6.4", ] [[package]] @@ -3016,7 +3047,7 @@ dependencies = [ "getrandom 0.2.15", "hmac-sha256", "hmac-sha512", - "rand", + "rand 0.8.5", "rsa", ] @@ -3562,8 +3593,8 @@ dependencies = [ "hex", "nom", "openssl", - "rand", - "rand_chacha", + "rand 0.8.5", + "rand_chacha 0.3.1", "serde", "serde_cbor_2", "serde_json", @@ -3779,7 +3810,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ "byteorder", - "zerocopy-derive", + "zerocopy-derive 0.7.35", +] + +[[package]] +name = "zerocopy" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a367f292d93d4eab890745e75a778da40909cab4d6ff8173693812f79c4a2468" +dependencies = [ + "zerocopy-derive 0.8.14", ] [[package]] @@ -3793,6 +3833,17 @@ dependencies = [ "syn", ] +[[package]] +name = "zerocopy-derive" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3931cb58c62c13adec22e38686b559c86a30565e16ad6e8510a337cedc611e1" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "zerofrom" version = "0.1.4" diff --git a/src/data/totp_key.rs b/src/data/totp_key.rs index 20325b1..5ae67b1 100644 --- a/src/data/totp_key.rs +++ b/src/data/totp_key.rs @@ -21,7 +21,7 @@ pub struct TotpKey { impl TotpKey { /// Generate a new TOTP key pub fn new_random() -> Self { - let random_bytes = rand::thread_rng().gen::<[u8; 20]>(); + let random_bytes = rand::rng().random::<[u8; 20]>(); Self { encoded: base32::encode(BASE32_ALPHABET, &random_bytes), } diff --git a/src/utils/string_utils.rs b/src/utils/string_utils.rs index ada87d3..0e5daa5 100644 --- a/src/utils/string_utils.rs +++ b/src/utils/string_utils.rs @@ -1,14 +1,9 @@ use lazy_regex::regex_find; -use rand::distributions::Alphanumeric; -use rand::Rng; +use rand::distr::{Alphanumeric, SampleString}; /// Generate a random string of a given size pub fn rand_str(len: usize) -> String { - rand::thread_rng() - .sample_iter(&Alphanumeric) - .map(char::from) - .take(len) - .collect() + Alphanumeric.sample_string(&mut rand::rng(), len) } /// Parse environment variables