From 66295315cf52c7cc04d4093258fb499cbba457c0 Mon Sep 17 00:00:00 2001 From: Tony Arcieri Date: Sat, 24 Jan 2026 15:30:36 -0700 Subject: [PATCH] Bump `rand_core` to v0.10.0-rc-6 (#1170) Renames `(Try)RngCore` => `(Try)Rng` --- Cargo.lock | 325 +++++++++++++++++++++++----- Cargo.toml | 8 + dsa/Cargo.toml | 4 +- dsa/examples/export.rs | 4 +- dsa/examples/generate.rs | 4 +- dsa/examples/sign.rs | 4 +- dsa/src/lib.rs | 4 +- dsa/tests/signature.rs | 6 +- dsa/tests/signing_key.rs | 6 +- dsa/tests/verifying_key.rs | 4 +- ecdsa/Cargo.toml | 14 +- ed25519/src/lib.rs | 2 +- lms/Cargo.toml | 2 +- lms/src/lms/mod.rs | 4 +- lms/src/lms/public.rs | 4 +- lms/src/lms/signature.rs | 4 +- lms/src/ots/mod.rs | 9 +- lms/src/ots/public.rs | 4 +- ml-dsa/Cargo.toml | 2 +- ml-dsa/benches/ml_dsa.rs | 5 +- ml-dsa/src/encode.rs | 9 +- ml-dsa/src/lib.rs | 13 +- slh-dsa/Cargo.toml | 2 +- slh-dsa/benches/sign_verify.rs | 5 +- slh-dsa/src/fors.rs | 6 +- slh-dsa/src/hypertree.rs | 6 +- slh-dsa/src/lib.rs | 18 +- slh-dsa/src/signature_encoding.rs | 7 +- slh-dsa/src/signing_key.rs | 7 +- slh-dsa/src/verifying_key.rs | 3 +- slh-dsa/src/wots.rs | 6 +- slh-dsa/src/xmss.rs | 7 +- slh-dsa/tests/known_answer_tests.rs | 8 +- 33 files changed, 374 insertions(+), 142 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a64df4c..e618bf8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -34,6 +34,12 @@ version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" +[[package]] +name = "anyhow" +version = "1.0.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" + [[package]] name = "autocfg" version = "1.5.0" @@ -108,14 +114,14 @@ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "chacha20" -version = "0.10.0-rc.8" +version = "0.10.0-rc.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31cd65b2ca03198c223cd9a8fa1152c4ec251cd79049f6dc584152ad3fb5ba9d" +checksum = "c81d916c6ae06736ec667b51f95ee5ff660a75f4ea6ce1bd932c942365c0ea43" dependencies = [ "cfg-if", "cipher", "cpufeatures", - "rand_core 0.10.0-rc-5", + "rand_core 0.10.0-rc-6", ] [[package]] @@ -268,15 +274,15 @@ checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "crypto-bigint" -version = "0.7.0-rc.21" +version = "0.7.0-rc.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9f9a78b88bb8255ec59a81423aa92ada22f96883f9ae59dcb68613907636ae5" +checksum = "053c3561863ce55e3226ecc48b08679f4b66cb1b92b9afb42c2c402dfe8b9b51" dependencies = [ "ctutils", - "getrandom 0.4.0-rc.0", + "getrandom 0.4.0-rc.1", "hybrid-array", "num-traits", - "rand_core 0.10.0-rc-5", + "rand_core 0.10.0-rc-6", "serdect", "subtle", "zeroize", @@ -284,24 +290,23 @@ dependencies = [ [[package]] name = "crypto-common" -version = "0.2.0-rc.11" +version = "0.2.0-rc.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d2bcc93d5cde6659e8649fc412894417ebc14dee54cfc6ee439c683a4a58342" +checksum = "c7722afd27468475c9b6063dc03a57ef2ca833816981619f8ebe64d38d207eef" dependencies = [ - "getrandom 0.4.0-rc.0", + "getrandom 0.4.0-rc.1", "hybrid-array", - "rand_core 0.10.0-rc-5", + "rand_core 0.10.0-rc-6", ] [[package]] name = "crypto-primes" version = "0.7.0-pre.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6372ba15f988d7cd77e9cfbc42b269601c006f2f16a21a72b886136caf04bfb" +source = "git+https://github.com/tarcieri/crypto-primes?branch=crypto-bigint%2Fv0.7.0-rc.22#cdb408ca1420df78b7d0d297d0d8e1a3f21f031b" dependencies = [ "crypto-bigint", "libm", - "rand_core 0.10.0-rc-5", + "rand_core 0.10.0-rc-6", ] [[package]] @@ -348,9 +353,9 @@ dependencies = [ [[package]] name = "digest" -version = "0.11.0-rc.7" +version = "0.11.0-rc.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca14c221bd9052fd2da7c34a2eeb5ae54732db28be47c35937be71793d675422" +checksum = "2fc1408b7a9f59a7b933faff3e9e7fc15a05a524effd3b3d1601156944c8077f" dependencies = [ "blobby", "block-buffer", @@ -368,12 +373,12 @@ dependencies = [ "crypto-primes", "der", "digest", - "getrandom 0.4.0-rc.0", + "getrandom 0.4.0-rc.1", "hex", "hex-literal", "pkcs8", "proptest", - "rand_core 0.10.0-rc-5", + "rand_core 0.10.0-rc-6", "rfc6979", "sha1", "sha2", @@ -431,21 +436,21 @@ checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] name = "elliptic-curve" -version = "0.14.0-rc.23" +version = "0.14.0-rc.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "660a2eb4d46d49d4c0b122a8cad1fa7926b0e3e99913796243a7dc280021eadc" +checksum = "5b0f6cc67cc39a00bce2c6f8f8aced0e8c0a06eb1a30f9dd2a9c9f4618bdf3b4" dependencies = [ "base16ct", "crypto-bigint", "crypto-common", "digest", - "getrandom 0.4.0-rc.0", + "getrandom 0.4.0-rc.1", "hex-literal", "hybrid-array", "once_cell", "pem-rfc7468", "pkcs8", - "rand_core 0.10.0-rc-5", + "rand_core 0.10.0-rc-6", "rustcrypto-ff", "rustcrypto-group", "sec1", @@ -454,6 +459,12 @@ dependencies = [ "zeroize", ] +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + [[package]] name = "errno" version = "0.3.14" @@ -476,6 +487,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + [[package]] name = "getrandom" version = "0.3.4" @@ -490,15 +507,16 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.4.0-rc.0" +version = "0.4.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b99f0d993a2b9b97b9a201193aa8ad21305cde06a3be9a7e1f8f4201e5cc27e" +checksum = "74f70a332ddf75e5e5e43284304179ba02f391f82f692f030b08a8378adf3c99" dependencies = [ "cfg-if", "libc", "r-efi", - "rand_core 0.10.0-rc-5", + "rand_core 0.10.0-rc-6", "wasip2", + "wasip3", ] [[package]] @@ -512,6 +530,27 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "foldhash", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + [[package]] name = "hex" version = "0.4.3" @@ -538,15 +577,33 @@ dependencies = [ [[package]] name = "hybrid-array" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f471e0a81b2f90ffc0cb2f951ae04da57de8baa46fa99112b062a5173a5088d0" +checksum = "b41fb3dc24fe72c2e3a4685eed55917c2fb228851257f4a8f2d985da9443c3e5" dependencies = [ "subtle", "typenum", "zeroize", ] +[[package]] +name = "id-arena" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" + +[[package]] +name = "indexmap" +version = "2.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" +dependencies = [ + "equivalent", + "hashbrown 0.16.1", + "serde", + "serde_core", +] + [[package]] name = "inout" version = "0.2.2" @@ -590,6 +647,12 @@ dependencies = [ "cpufeatures", ] +[[package]] +name = "leb128fmt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" + [[package]] name = "libc" version = "0.2.180" @@ -613,11 +676,11 @@ name = "lms-signature" version = "0.1.0-rc.0" dependencies = [ "digest", - "getrandom 0.4.0-rc.0", + "getrandom 0.4.0-rc.1", "hex", "hex-literal", "hybrid-array", - "rand_core 0.10.0-rc-5", + "rand_core 0.10.0-rc-6", "sha2", "signature", "static_assertions", @@ -625,6 +688,12 @@ dependencies = [ "zeroize", ] +[[package]] +name = "log" +version = "0.4.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" + [[package]] name = "memchr" version = "2.7.6" @@ -637,14 +706,14 @@ version = "0.1.0-rc.3" dependencies = [ "const-oid", "criterion", - "getrandom 0.4.0-rc.0", + "getrandom 0.4.0-rc.1", "hex", "hex-literal", "hybrid-array", "num-traits", "pkcs8", "proptest", - "rand_core 0.10.0-rc-5", + "rand_core 0.10.0-rc-6", "serde", "serde_json", "sha3", @@ -754,6 +823,16 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "prettyplease" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +dependencies = [ + "proc-macro2", + "syn", +] + [[package]] name = "proc-macro2" version = "1.0.105" @@ -816,12 +895,11 @@ dependencies = [ [[package]] name = "rand" version = "0.10.0-rc.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d3e6a909ceda8ceb12ef039b675ecf4bbe6def127e773cac109ab8347633766" +source = "git+https://github.com/rust-random/rand?branch=rand_core%2Fv0.10.0-rc-6#79d9026b7284bc574401fe39cc763af09d6d092c" dependencies = [ "chacha20", - "getrandom 0.4.0-rc.0", - "rand_core 0.10.0-rc-5", + "getrandom 0.4.0-rc.1", + "rand_core 0.10.0-rc-6", ] [[package]] @@ -845,9 +923,9 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.10.0-rc-5" +version = "0.10.0-rc-6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05a06e03bd1f2ae861ab9e7498b6c64ed3dadb9ce175c0464a2522a5f23c0045" +checksum = "70765ff7112b0fb2d272d24d9a2f907fc206211304328fe58b2db15a5649ef28" [[package]] name = "rand_xorshift" @@ -919,21 +997,21 @@ dependencies = [ [[package]] name = "rustcrypto-ff" -version = "0.14.0-pre.0" +version = "0.14.0-pre.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa9cd37111549306f79b09aa2618e15b1e8241b7178c286821e3dd71579db4db" +checksum = "36fdf8f956089df8343b9479045c026932f9eb004d0f32d8497b4d133b316a66" dependencies = [ - "rand_core 0.10.0-rc-5", + "rand_core 0.10.0-rc-6", "subtle", ] [[package]] name = "rustcrypto-group" -version = "0.14.0-pre.0" +version = "0.14.0-pre.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e394cd734b5f97dfc3484fa42aad7acd912961c2bcd96c99aa05b3d6cab7cafd" +checksum = "df76d08c12814c794ffe95ac788b48081cccb607fade4ed746825d29791ce538" dependencies = [ - "rand_core 0.10.0-rc-5", + "rand_core 0.10.0-rc-6", "rustcrypto-ff", "subtle", ] @@ -980,9 +1058,9 @@ dependencies = [ [[package]] name = "sec1" -version = "0.8.0-rc.12" +version = "0.8.0-rc.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b54617aeb7e34ace1a4b72ba79bb6297e48285dc0cce064dc063ddcbf538996" +checksum = "7a2400ed44a13193820aa528a19f376c3843141a8ce96ff34b11104cc79763f2" dependencies = [ "base16ct", "ctutils", @@ -993,6 +1071,12 @@ dependencies = [ "zeroize", ] +[[package]] +name = "semver" +version = "1.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" + [[package]] name = "serde" version = "1.0.228" @@ -1069,9 +1153,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.11.0-rc.3" +version = "0.11.0-rc.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19d43dc0354d88b791216bb5c1bfbb60c0814460cc653ae0ebd71f286d0bd927" +checksum = "7535f94fa3339fe9e5e9be6260a909e62af97f6e14b32345ccf79b92b8b81233" dependencies = [ "cfg-if", "cpufeatures", @@ -1090,12 +1174,12 @@ dependencies = [ [[package]] name = "signature" -version = "3.0.0-rc.8" +version = "3.0.0-rc.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c04b70a14ee5f15e2e0c785a5fdb2e9a51138dfe13ba3cf8eab037a9e60b1879" +checksum = "0ad0ce3b3f8efd7406f22e2ca5d02be21cdf3b3d1d53ab141f784de8965c7c7e" dependencies = [ "digest", - "rand_core 0.10.0-rc-5", + "rand_core 0.10.0-rc-6", ] [[package]] @@ -1117,7 +1201,7 @@ dependencies = [ "pkcs8", "proptest", "rand 0.10.0-rc.7", - "rand_core 0.10.0-rc-5", + "rand_core 0.10.0-rc-6", "serde", "serde_json", "sha2", @@ -1202,6 +1286,12 @@ version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + [[package]] name = "wait-timeout" version = "0.2.1" @@ -1227,7 +1317,16 @@ version = "1.0.2+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" dependencies = [ - "wit-bindgen", + "wit-bindgen 0.51.0", +] + +[[package]] +name = "wasip3" +version = "0.3.1+wasi-0.3.0-rc-2025-09-16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba4be47b1d11244670d11857eee0758a8f2c39aea64d80b78c1ce29b4642cd" +dependencies = [ + "wit-bindgen 0.48.1", ] [[package]] @@ -1275,6 +1374,40 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "wasm-encoder" +version = "0.241.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01164c9dda68301e34fdae536c23ed6fe90ce6d97213ccc171eebbd3d02d6b8" +dependencies = [ + "leb128fmt", + "wasmparser", +] + +[[package]] +name = "wasm-metadata" +version = "0.241.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "876fe286f2fa416386deedebe8407e6f19e0b5aeaef3d03161e77a15fa80f167" +dependencies = [ + "anyhow", + "indexmap", + "wasm-encoder", + "wasmparser", +] + +[[package]] +name = "wasmparser" +version = "0.241.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46d90019b1afd4b808c263e428de644f3003691f243387d30d673211ee0cb8e8" +dependencies = [ + "bitflags", + "hashbrown 0.15.5", + "indexmap", + "semver", +] + [[package]] name = "web-sys" version = "0.3.85" @@ -1309,12 +1442,100 @@ dependencies = [ "windows-link", ] +[[package]] +name = "wit-bindgen" +version = "0.48.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f8c2adb5f74ac9395bc3121c99a1254bf9310482c27b13f97167aedb5887138" +dependencies = [ + "wit-bindgen-rust-macro", +] + [[package]] name = "wit-bindgen" version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +[[package]] +name = "wit-bindgen-core" +version = "0.48.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b881a098cae03686d7a0587f8f306f8a58102ad8da8b5599100fbe0e7f5800b" +dependencies = [ + "anyhow", + "heck", + "wit-parser", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.48.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69667efa439a453e1d50dac939c6cab6d2c3ac724a9d232b6631dad2472a5b70" +dependencies = [ + "anyhow", + "heck", + "indexmap", + "prettyplease", + "syn", + "wasm-metadata", + "wit-bindgen-core", + "wit-component", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.48.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eae2e22cceb5d105d52326c07e3e67603a861cc7add70fc467f7cc7ec5265017" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn", + "wit-bindgen-core", + "wit-bindgen-rust", +] + +[[package]] +name = "wit-component" +version = "0.241.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0c57df25e7ee612d946d3b7646c1ddb2310f8280aa2c17e543b66e0812241" +dependencies = [ + "anyhow", + "bitflags", + "indexmap", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder", + "wasm-metadata", + "wasmparser", + "wit-parser", +] + +[[package]] +name = "wit-parser" +version = "0.241.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ef1c6ad67f35c831abd4039c02894de97034100899614d1c44e2268ad01c91" +dependencies = [ + "anyhow", + "id-arena", + "indexmap", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser", +] + [[package]] name = "zerocopy" version = "0.8.33" diff --git a/Cargo.toml b/Cargo.toml index 79c5444..f2b5cf6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,3 +25,11 @@ lms-signature = { path = "./lms" } ml-dsa = { path = "./ml-dsa" } rfc6979 = { path = "./rfc6979" } slh-dsa = { path = "./slh-dsa" } + +[patch.crates-io.crypto-primes] +git = "https://github.com/tarcieri/crypto-primes" +branch = "crypto-bigint/v0.7.0-rc.22" + +[patch.crates-io.rand] +git = "https://github.com/rust-random/rand" +branch = "rand_core/v0.10.0-rc-6" diff --git a/dsa/Cargo.toml b/dsa/Cargo.toml index cbfdff1..8051561 100644 --- a/dsa/Cargo.toml +++ b/dsa/Cargo.toml @@ -29,7 +29,7 @@ zeroize = { version = "1", default-features = false, features = ["alloc"] } pkcs8 = { version = "0.11.0-rc.8", optional = true, default-features = false, features = ["alloc"] } [dev-dependencies] -chacha20 = { version = "0.10.0-rc.7", features = ["rng"] } +chacha20 = { version = "0.10.0-rc.9", features = ["rng"] } hex = "0.4" hex-literal = "1" pkcs8 = { version = "0.11.0-rc.8", default-features = false, features = ["pem"] } @@ -37,7 +37,7 @@ proptest = "1" getrandom = { version = "0.4.0-rc.0", features = ["sys_rng"] } sha1 = "0.11.0-rc.2" der = { version = "0.8.0-rc.10", features = ["derive"] } -rand_core = "0.10.0-rc-5" +rand_core = "0.10.0-rc-6" [features] default = ["pkcs8"] diff --git a/dsa/examples/export.rs b/dsa/examples/export.rs index 0f60e6a..658b83b 100644 --- a/dsa/examples/export.rs +++ b/dsa/examples/export.rs @@ -1,12 +1,12 @@ #![cfg(feature = "hazmat")] use dsa::{Components, KeySize, SigningKey}; -use getrandom::rand_core::TryRngCore; +use getrandom::SysRng; use pkcs8::{EncodePrivateKey, EncodePublicKey, LineEnding}; use std::{fs::File, io::Write}; fn main() { - let mut rng = getrandom::SysRng.unwrap_err(); + let mut rng = rand_core::UnwrapErr(SysRng); let components = Components::generate(&mut rng, KeySize::DSA_2048_256); let signing_key = SigningKey::generate(&mut rng, components); let verifying_key = signing_key.verifying_key(); diff --git a/dsa/examples/generate.rs b/dsa/examples/generate.rs index 02938c5..a341b5f 100644 --- a/dsa/examples/generate.rs +++ b/dsa/examples/generate.rs @@ -1,10 +1,10 @@ #![cfg(feature = "hazmat")] use dsa::{Components, KeySize, SigningKey}; -use getrandom::rand_core::TryRngCore; +use getrandom::{SysRng, rand_core::UnwrapErr}; fn main() { - let mut rng = getrandom::SysRng.unwrap_err(); + let mut rng = UnwrapErr(SysRng); let components = Components::generate(&mut rng, KeySize::DSA_2048_256); let signing_key = SigningKey::generate(&mut rng, components); let _verifying_key = signing_key.verifying_key(); diff --git a/dsa/examples/sign.rs b/dsa/examples/sign.rs index 89fe87f..ce934c7 100644 --- a/dsa/examples/sign.rs +++ b/dsa/examples/sign.rs @@ -1,13 +1,13 @@ use digest::Digest; use dsa::{Components, KeySize, SigningKey}; -use getrandom::rand_core::TryRngCore; +use getrandom::{SysRng, rand_core::UnwrapErr}; use pkcs8::{EncodePrivateKey, EncodePublicKey, LineEnding}; use sha1::Sha1; use signature::{RandomizedDigestSigner, SignatureEncoding}; use std::{fs::File, io::Write}; fn main() { - let mut rng = getrandom::SysRng.unwrap_err(); + let mut rng = UnwrapErr(SysRng); let components = Components::generate(&mut rng, KeySize::DSA_2048_256); let signing_key = SigningKey::generate(&mut rng, components); let verifying_key = signing_key.verifying_key(); diff --git a/dsa/src/lib.rs b/dsa/src/lib.rs index 99f54a2..bba9612 100644 --- a/dsa/src/lib.rs +++ b/dsa/src/lib.rs @@ -15,9 +15,9 @@ #![cfg_attr(feature = "hazmat", doc = "```")] #![cfg_attr(not(feature = "hazmat"), doc = "```ignore")] //! # use dsa::{KeySize, Components, SigningKey}; -//! use getrandom::rand_core::TryRngCore; +//! use getrandom::{SysRng, rand_core::UnwrapErr}; //! -//! let mut csprng = getrandom::SysRng.unwrap_err(); +//! let mut csprng = UnwrapErr(SysRng); //! let components = Components::generate(&mut csprng, KeySize::DSA_2048_256); //! let signing_key = SigningKey::generate(&mut csprng, components); //! let verifying_key = signing_key.verifying_key(); diff --git a/dsa/tests/signature.rs b/dsa/tests/signature.rs index 271c817..a721e20 100644 --- a/dsa/tests/signature.rs +++ b/dsa/tests/signature.rs @@ -3,9 +3,9 @@ use digest::Digest; use dsa::{Components, KeySize, Signature, SigningKey}; +use getrandom::{SysRng, rand_core::UnwrapErr}; use hex_literal::hex; use pkcs8::der::{Decode, Encode}; -use rand_core::TryRngCore; use sha2::Sha256; use signature::{ DigestVerifier, RandomizedDigestSigner, Signer, Verifier, @@ -33,7 +33,7 @@ const MESSAGE_SIGNATURE_OPENSSL_ASN1: &[u8] = &hex!( /// Generate a random DSA keypair fn generate_random_keypair() -> SigningKey { - let mut rng = getrandom::SysRng.unwrap_err(); + let mut rng = UnwrapErr(SysRng); let components = Components::generate(&mut rng, KeySize::DSA_1024_160); SigningKey::generate(&mut rng, components) } @@ -60,7 +60,7 @@ fn decode_encode_signature() { #[test] fn sign_verify_message() { let signing_key = generate_random_keypair(); - let mut rng = getrandom::SysRng.unwrap_err(); + let mut rng = UnwrapErr(SysRng); let generated_signature = signing_key.sign_digest_with_rng(&mut rng, |digest: &mut Sha256| digest.update(MESSAGE)); diff --git a/dsa/tests/signing_key.rs b/dsa/tests/signing_key.rs index d465f4f..cac24c0 100644 --- a/dsa/tests/signing_key.rs +++ b/dsa/tests/signing_key.rs @@ -9,7 +9,7 @@ use crypto_bigint::{ }; use digest::Digest; use dsa::{Components, KeySize, SigningKey}; -use getrandom::rand_core::TryRngCore; +use getrandom::{SysRng, rand_core::UnwrapErr}; use pkcs8::{DecodePrivateKey, EncodePrivateKey, LineEnding}; use sha1::Sha1; use signature::{DigestVerifier, RandomizedDigestSigner}; @@ -17,7 +17,7 @@ use signature::{DigestVerifier, RandomizedDigestSigner}; const OPENSSL_PEM_PRIVATE_KEY: &str = include_str!("pems/private.pem"); fn generate_keypair() -> SigningKey { - let mut rng = getrandom::SysRng.unwrap_err(); + let mut rng = UnwrapErr(SysRng); let components = Components::generate(&mut rng, KeySize::DSA_1024_160); SigningKey::generate(&mut rng, components) } @@ -49,7 +49,7 @@ fn sign_and_verify() { let signing_key = generate_keypair(); let verifying_key = signing_key.verifying_key(); - let mut rng = getrandom::SysRng.unwrap_err(); + let mut rng = UnwrapErr(SysRng); let signature = signing_key.sign_digest_with_rng(&mut rng, |digest: &mut Sha1| digest.update(DATA)); diff --git a/dsa/tests/verifying_key.rs b/dsa/tests/verifying_key.rs index 80898a1..1253f65 100644 --- a/dsa/tests/verifying_key.rs +++ b/dsa/tests/verifying_key.rs @@ -13,14 +13,14 @@ use { modular::{BoxedMontyForm, BoxedMontyParams}, }, dsa::{Components, KeySize, SigningKey}, - getrandom::rand_core::TryRngCore, + getrandom::SysRng, }; const OPENSSL_PEM_PUBLIC_KEY: &str = include_str!("pems/public.pem"); #[cfg(feature = "hazmat")] fn generate_verifying_key() -> VerifyingKey { - let mut rng = getrandom::SysRng.unwrap_err(); + let mut rng = rand_core::UnwrapErr(SysRng); let components = Components::generate(&mut rng, KeySize::DSA_1024_160); let signing_key = SigningKey::generate(&mut rng, components); diff --git a/ecdsa/Cargo.toml b/ecdsa/Cargo.toml index 3305b40..50fed86 100644 --- a/ecdsa/Cargo.toml +++ b/ecdsa/Cargo.toml @@ -17,22 +17,22 @@ edition = "2024" rust-version = "1.85" [dependencies] -elliptic-curve = { version = "0.14.0-rc.23", default-features = false, features = ["sec1"] } -signature = { version = "3.0.0-rc.8", default-features = false, features = ["rand_core"] } +elliptic-curve = { version = "0.14.0-rc.24", default-features = false, features = ["sec1"] } +signature = { version = "3.0.0-rc.9", default-features = false, features = ["rand_core"] } zeroize = { version = "1.5", default-features = false } # optional dependencies -der = { version = "0.8.0-rc.9", optional = true } -digest = { version = "0.11.0-rc.7", optional = true, default-features = false, features = ["oid"] } +der = { version = "0.8.0-rc.10", optional = true } +digest = { version = "0.11.0-rc.8", optional = true, default-features = false, features = ["oid"] } rfc6979 = { version = "0.5.0-rc.3", optional = true } serdect = { version = "0.4", optional = true, default-features = false, features = ["alloc"] } -sha2 = { version = "0.11.0-rc.3", optional = true, default-features = false, features = ["oid"] } +sha2 = { version = "0.11.0-rc.4", optional = true, default-features = false, features = ["oid"] } spki = { version = "0.8.0-rc.4", optional = true, default-features = false } [dev-dependencies] -elliptic-curve = { version = "0.14.0-rc.23", default-features = false, features = ["dev"] } +elliptic-curve = { version = "0.14.0-rc.24", default-features = false, features = ["dev"] } hex-literal = "1" -sha2 = { version = "0.11.0-rc.3", default-features = false } +sha2 = { version = "0.11.0-rc.4", default-features = false } [features] default = ["digest"] diff --git a/ed25519/src/lib.rs b/ed25519/src/lib.rs index 2f38509..897ddcd 100644 --- a/ed25519/src/lib.rs +++ b/ed25519/src/lib.rs @@ -200,7 +200,7 @@ //! # fn format_message(person: &str) -> String { //! # format!("Hello, {}!", person) //! # } -//! use rand_core::{OsRng, RngCore}; // Requires the `std` feature of `rand_core` +//! use rand_core::{OsRng, Rng}; // Requires the `std` feature of `rand_core` //! //! /// `HelloSigner` defined above instantiated with *ring* as //! /// the signing provider. diff --git a/lms/Cargo.toml b/lms/Cargo.toml index efc4db2..3521015 100644 --- a/lms/Cargo.toml +++ b/lms/Cargo.toml @@ -17,7 +17,7 @@ hybrid-array = { version = "0.4", features = ["extra-sizes", "zeroize"] } getrandom = { version = "0.4.0-rc.0", features = ["sys_rng"] } sha2 = "0.11.0-rc.3" static_assertions = "1.1" -rand_core = "0.10.0-rc-5" +rand_core = "0.10.0-rc-6" signature = { version = "3.0.0-rc.8", features = ["alloc", "digest", "rand_core"] } typenum = { version = "1.17", features = ["const-generics"] } zeroize = "1.8" diff --git a/lms/src/lms/mod.rs b/lms/src/lms/mod.rs index b407d52..e0a778b 100644 --- a/lms/src/lms/mod.rs +++ b/lms/src/lms/mod.rs @@ -19,10 +19,10 @@ mod tests { use super::*; use crate::{lms::SigningKey, ots::LmsOtsSha256N32W4}; use ::signature::{RandomizedSignerMut, Verifier}; - use getrandom::rand_core::TryRngCore; + use getrandom::{SysRng, rand_core::UnwrapErr}; fn test_sign_and_verify() { - let mut rng = getrandom::SysRng.unwrap_err(); + let mut rng = UnwrapErr(SysRng); // Generate a fresh keypair let mut sk = SigningKey::::new(&mut rng); diff --git a/lms/src/lms/public.rs b/lms/src/lms/public.rs index f4356eb..6c366d2 100644 --- a/lms/src/lms/public.rs +++ b/lms/src/lms/public.rs @@ -171,7 +171,7 @@ mod tests { ots::{LmsOtsSha256N32W4, LmsOtsSha256N32W8}, }; use digest::OutputSizeUser; - use getrandom::rand_core::TryRngCore; + use getrandom::SysRng; use hex_literal::hex; use hybrid_array::{Array, ArraySize}; use typenum::{Sum, U24}; @@ -265,7 +265,7 @@ mod tests { ::OutputSize: Add, Sum<::OutputSize, U24>: ArraySize, { - let mut rng = getrandom::SysRng.unwrap_err(); + let mut rng = rand_core::UnwrapErr(SysRng); let lms_priv = SigningKey::::new(&mut rng); let lms_pub = lms_priv.public(); let lms_pub_serialized: Array::OutputSize, U24>> = diff --git a/lms/src/lms/signature.rs b/lms/src/lms/signature.rs index 2af5dec..4ee4371 100644 --- a/lms/src/lms/signature.rs +++ b/lms/src/lms/signature.rs @@ -138,7 +138,7 @@ mod tests { lms::{Signature, SigningKey, VerifyingKey, modes::*}, ots::modes::*, }; - use getrandom::rand_core::TryRngCore; + use getrandom::SysRng; use hex_literal::hex; use hybrid_array::ArraySize; use signature::{RandomizedSignerMut, Verifier}; @@ -268,7 +268,7 @@ mod tests { U4, >: ArraySize, { - let mut rng = getrandom::SysRng.unwrap_err(); + let mut rng = rand_core::UnwrapErr(SysRng); let mut sk = SigningKey::::new(&mut rng); let pk = sk.public(); let msg = b"Hello, world!"; diff --git a/lms/src/ots/mod.rs b/lms/src/ots/mod.rs index e4bd1a3..e243bca 100644 --- a/lms/src/ots/mod.rs +++ b/lms/src/ots/mod.rs @@ -29,9 +29,10 @@ pub mod tests { }; use core::convert::Infallible; use digest::{Digest, OutputSizeUser}; + use getrandom::SysRng; use hex_literal::hex; use hybrid_array::{Array, ArraySize}; - use rand_core::{TryCryptoRng, TryRngCore}; + use rand_core::{TryCryptoRng, TryRng, UnwrapErr}; use signature::{RandomizedSignerMut, Verifier}; use std::{matches, ops::Add}; use typenum::{Sum, U2}; @@ -43,7 +44,7 @@ pub mod tests { ::OutputSize: Add, Sum<::OutputSize, U2>: ArraySize, { - let mut rng = getrandom::SysRng.unwrap_err(); + let mut rng = UnwrapErr(SysRng); let mut sk = SigningKey::::new(0, [0xcc; ID_LEN], &mut rng); let pk = sk.public(); let msg = "this is a test message".as_bytes(); @@ -67,7 +68,7 @@ pub mod tests { ::OutputSize: Add, Sum<::OutputSize, U2>: ArraySize, { - let mut rng = getrandom::SysRng.unwrap_err(); + let mut rng = UnwrapErr(SysRng); let mut sk = SigningKey::::new(0, [0xcc; ID_LEN], &mut rng); let mut pk = sk.public(); let msg = "this is a test message".as_bytes(); @@ -129,7 +130,7 @@ pub mod tests { /// Constant RNG for testing purposes only. pub struct ConstantRng<'a>(pub &'a [u8]); - impl TryRngCore for ConstantRng<'_> { + impl TryRng for ConstantRng<'_> { type Error = Infallible; fn try_next_u32(&mut self) -> Result { diff --git a/lms/src/ots/public.rs b/lms/src/ots/public.rs index c3bbc8b..4f6eff5 100644 --- a/lms/src/ots/public.rs +++ b/lms/src/ots/public.rs @@ -138,12 +138,12 @@ mod tests { public::VerifyingKey, }, }; - use getrandom::rand_core::TryRngCore; + use getrandom::SysRng; use hybrid_array::Array; #[test] fn test_serde() { - let mut rng = getrandom::SysRng.unwrap_err(); + let mut rng = rand_core::UnwrapErr(SysRng); let pk = SigningKey::::new(0, [0xbb; ID_LEN], &mut rng).public(); let pk_serialized: Array = pk.clone().into(); diff --git a/ml-dsa/Cargo.toml b/ml-dsa/Cargo.toml index ed1ffa0..0f8a713 100644 --- a/ml-dsa/Cargo.toml +++ b/ml-dsa/Cargo.toml @@ -40,7 +40,7 @@ signature = { version = "3.0.0-rc.8", default-features = false, features = ["dig # optional dependencies const-oid = { version = "0.10", features = ["db"], optional = true } pkcs8 = { version = "0.11.0-rc.8", default-features = false, optional = true } -rand_core = { version = "0.10.0-rc-5", optional = true } +rand_core = { version = "0.10.0-rc-6", optional = true } zeroize = { version = "1.8.1", optional = true, default-features = false } [dev-dependencies] diff --git a/ml-dsa/benches/ml_dsa.rs b/ml-dsa/benches/ml_dsa.rs index bc06f97..0a362e1 100644 --- a/ml-dsa/benches/ml_dsa.rs +++ b/ml-dsa/benches/ml_dsa.rs @@ -1,7 +1,8 @@ use criterion::{Criterion, criterion_group, criterion_main}; +use getrandom::SysRng; use hybrid_array::{Array, ArraySize}; use ml_dsa::{B32, KeyGen, MlDsa65, Signature, SigningKey, VerifyingKey}; -use rand_core::{CryptoRng, TryRngCore}; +use rand_core::{CryptoRng, UnwrapErr}; pub fn rand(rng: &mut R) -> Array { let mut val = Array::::default(); @@ -11,7 +12,7 @@ pub fn rand(rng: &mut R) -> Array { #[allow(deprecated)] // TODO(tarcieri): stop using expanded signing keys fn criterion_benchmark(c: &mut Criterion) { - let mut rng = getrandom::SysRng.unwrap_err(); + let mut rng = UnwrapErr(SysRng); let xi: B32 = rand(&mut rng); let m: B32 = rand(&mut rng); let ctx: B32 = rand(&mut rng); diff --git a/ml-dsa/src/encode.rs b/ml-dsa/src/encode.rs index 42a4f50..bd80b63 100644 --- a/ml-dsa/src/encode.rs +++ b/ml-dsa/src/encode.rs @@ -110,7 +110,10 @@ pub(crate) mod test { use super::*; use crate::{algebra::*, module_lattice::encode::*}; use core::ops::Rem; - use getrandom::rand_core::{RngCore, TryRngCore}; + use getrandom::{ + SysRng, + rand_core::{Rng, UnwrapErr}, + }; use hybrid_array::typenum::{ U1, U2, U3, U4, U6, U7, U8, U9, U10, U13, U17, U19, marker_traits::Zero, @@ -148,7 +151,7 @@ pub(crate) mod test { assert_eq!(actual_decoded, *decoded); // Test random decode/encode and encode/decode round trips - let mut rng = getrandom::SysRng.unwrap_err(); + let mut rng = UnwrapErr(SysRng); let decoded = Polynomial::new(Array::from_fn(|_| { let x = rng.next_u32(); Elem::new(x % (b + 1)) @@ -221,7 +224,7 @@ pub(crate) mod test { assert_eq!(actual_decoded, *decoded); // Test random decode/encode and encode/decode round trips - let mut rng = getrandom::SysRng.unwrap_err(); + let mut rng = UnwrapErr(SysRng); let decoded = Polynomial::new(Array::from_fn(|_| { let mut x = rng.next_u32(); x %= a.0 + b.0; diff --git a/ml-dsa/src/lib.rs b/ml-dsa/src/lib.rs index 3069c7b..ba26c03 100644 --- a/ml-dsa/src/lib.rs +++ b/ml-dsa/src/lib.rs @@ -24,9 +24,9 @@ //! signature::{Keypair, Signer, Verifier}, //! MlDsa65, KeyGen, //! }; -//! use getrandom::rand_core::TryRngCore; +//! use getrandom::{SysRng, rand_core::UnwrapErr}; //! -//! let mut rng = getrandom::SysRng.unwrap_err(); +//! let mut rng = UnwrapErr(SysRng); //! let kp = MlDsa65::key_gen(&mut rng); //! //! let msg = b"Hello world"; @@ -943,7 +943,10 @@ where mod test { use super::*; use crate::param::*; - use getrandom::rand_core::{RngCore, TryRngCore}; + use getrandom::{ + SysRng, + rand_core::{Rng, UnwrapErr}, + }; use signature::digest::Update; #[test] @@ -1049,7 +1052,7 @@ mod test { { const ITERATIONS: usize = 1000; - let mut rng = getrandom::SysRng.unwrap_err(); + let mut rng = UnwrapErr(SysRng); let mut seed = B32::default(); for _i in 0..ITERATIONS { @@ -1185,7 +1188,7 @@ mod test { let vk = kp.verifying_key; let M = b"Hello world"; - let mut rng = getrandom::SysRng.unwrap_err(); + let mut rng = UnwrapErr(SysRng); let sig = sk.sign_digest_with_rng(&mut rng, |digest| digest.update(M)); vk.verify_digest( diff --git a/slh-dsa/Cargo.toml b/slh-dsa/Cargo.toml index 8cec067..ceba3ef 100644 --- a/slh-dsa/Cargo.toml +++ b/slh-dsa/Cargo.toml @@ -21,7 +21,7 @@ digest = "0.11.0-rc.7" hmac = "0.13.0-rc.3" hybrid-array = { version = "0.4", features = ["extra-sizes"] } pkcs8 = { version = "0.11.0-rc.8", default-features = false } -rand_core = "0.10.0-rc-5" +rand_core = "0.10.0-rc-6" sha2 = { version = "0.11.0-rc.3", default-features = false } sha3 = { version = "0.11.0-rc.3", default-features = false } signature = { version = "3.0.0-rc.8", features = ["rand_core"] } diff --git a/slh-dsa/benches/sign_verify.rs b/slh-dsa/benches/sign_verify.rs index f8b589d..a196854 100644 --- a/slh-dsa/benches/sign_verify.rs +++ b/slh-dsa/benches/sign_verify.rs @@ -1,11 +1,10 @@ use criterion::{Criterion, criterion_group, criterion_main}; -use rand::{TryRngCore, rngs::SysRng}; use signature::{Keypair, Signer, Verifier}; use slh_dsa::*; use std::hint::black_box; pub fn sign_benchmark(c: &mut Criterion) { - let mut rng = SysRng.unwrap_err(); + let mut rng = rand::rng(); let sk = SigningKey::

::new(&mut rng); c.bench_function(&format!("sign: {}", P::NAME), |b| { b.iter(|| { @@ -17,7 +16,7 @@ pub fn sign_benchmark(c: &mut Criterion) { } pub fn verify_benchmark(c: &mut Criterion) { - let mut rng = SysRng.unwrap_err(); + let mut rng = rand::rng(); let sk = SigningKey::

::new(&mut rng); let msg = b"Hello, world!"; let sig = sk.try_sign(msg).unwrap(); diff --git a/slh-dsa/src/fors.rs b/slh-dsa/src/fors.rs index c4bf2c5..0a65eb6 100644 --- a/slh-dsa/src/fors.rs +++ b/slh-dsa/src/fors.rs @@ -221,7 +221,7 @@ mod tests { use self::address::ForsTree; use super::*; use crate::{PkSeed, Shake128f, util::macros::test_parameter_sets}; - use rand::{Rng, TryRngCore, rngs::SysRng}; + use rand::RngExt; #[test] #[cfg(feature = "alloc")] @@ -475,7 +475,7 @@ mod tests { fn test_sign_verify() { // Generate random sk_seed, pk_seed, message, index, address - let mut rng = SysRng.unwrap_err(); + let mut rng = rand::rng(); let sk_seed = SkSeed::new(&mut rng); let pk_seed = PkSeed::new(&mut rng); @@ -508,7 +508,7 @@ mod tests { fn test_sign_verify_failure() { // Generate random sk_seed, pk_seed, message, index, address - let mut rng = SysRng.unwrap_err(); + let mut rng = rand::rng(); let sk_seed = SkSeed::new(&mut rng); let pk_seed = PkSeed::new(&mut rng); diff --git a/slh-dsa/src/hypertree.rs b/slh-dsa/src/hypertree.rs index e178955..6e36cab 100644 --- a/slh-dsa/src/hypertree.rs +++ b/slh-dsa/src/hypertree.rs @@ -137,10 +137,10 @@ mod tests { use super::*; use crate::{PkSeed, hashes::Shake128f, util::macros::test_parameter_sets}; use hybrid_array::Array; - use rand::{Rng, TryRngCore, rngs::SysRng}; + use rand::RngExt; fn test_ht_sign_verify() { - let mut rng = SysRng.unwrap_err(); + let mut rng = rand::rng(); let sk_seed = SkSeed::new(&mut rng); let pk_seed = PkSeed::new(&mut rng); @@ -170,7 +170,7 @@ mod tests { test_parameter_sets!(test_ht_sign_verify); fn test_ht_sign_verify_fail() { - let mut rng = SysRng.unwrap_err(); + let mut rng = rand::rng(); let sk_seed = SkSeed::new(&mut rng); let pk_seed = PkSeed::new(&mut rng); diff --git a/slh-dsa/src/lib.rs b/slh-dsa/src/lib.rs index e5e9eae..50f6f11 100644 --- a/slh-dsa/src/lib.rs +++ b/slh-dsa/src/lib.rs @@ -25,7 +25,7 @@ //! use slh_dsa::*; //! use signature::*; //! -//! let mut rng = SysRng; +//! let mut rng = rand::rng(); //! //! // Generate a signing key using the SHAKE128f parameter set //! let sk = SigningKey::::new(&mut rng); @@ -83,12 +83,12 @@ pub trait ParameterSet: ForsParams + SigningKeyLen + VerifyingKeyLen + Signature #[cfg(test)] mod tests { use super::*; - use rand::{Rng, TryRngCore, rngs::SysRng}; + use rand::RngExt; use signature::*; use util::macros::test_parameter_sets; fn test_sign_verify() { - let mut rng = SysRng.unwrap_err(); + let mut rng = rand::rng(); let sk = SigningKey::

::new(&mut rng); let vk = sk.verifying_key(); let msg = b"Hello, world!"; @@ -100,7 +100,7 @@ mod tests { // Check signature fails on modified message #[test] fn test_sign_verify_shake_128f_fail_on_modified_message() { - let mut rng = SysRng.unwrap_err(); + let mut rng = rand::rng(); let sk = SigningKey::::new(&mut rng); let msg = b"Hello, world!"; let modified_msg = b"Goodbye, world!"; @@ -113,7 +113,7 @@ mod tests { #[test] fn test_sign_verify_fail_with_wrong_verifying_key() { - let mut rng = SysRng.unwrap_err(); + let mut rng = rand::rng(); let sk = SigningKey::::new(&mut rng); let wrong_sk = SigningKey::::new(&mut rng); // Generate a different signing key let msg = b"Hello, world!"; @@ -127,7 +127,7 @@ mod tests { #[test] fn test_sign_verify_fail_on_modified_signature() { - let mut rng = SysRng.unwrap_err(); + let mut rng = rand::rng(); let sk = SigningKey::::new(&mut rng); let msg = b"Hello, world!"; @@ -147,7 +147,7 @@ mod tests { #[test] fn test_successive_signatures_not_equal() { - let mut rng = SysRng.unwrap_err(); + let mut rng = rand::rng(); let sk = SigningKey::::new(&mut rng); let msg = b"Hello, world!"; @@ -162,7 +162,7 @@ mod tests { #[test] fn test_sign_verify_nonempty_context() { - let mut rng = SysRng.unwrap_err(); + let mut rng = rand::rng(); let sk = SigningKey::::new(&mut rng); let vk = sk.verifying_key(); let msg = b"Hello, world!"; @@ -173,7 +173,7 @@ mod tests { #[test] fn test_sign_verify_wrong_context() { - let mut rng = SysRng.unwrap_err(); + let mut rng = rand::rng(); let sk = SigningKey::::new(&mut rng); let vk = sk.verifying_key(); let msg = b"Hello, world!"; diff --git a/slh-dsa/src/signature_encoding.rs b/slh-dsa/src/signature_encoding.rs index 32cde2d..314bef1 100644 --- a/slh-dsa/src/signature_encoding.rs +++ b/slh-dsa/src/signature_encoding.rs @@ -199,11 +199,10 @@ mod tests { util::macros::test_parameter_sets, }; use hybrid_array::Array; - use rand::{TryRngCore, rngs::SysRng}; use signature::{SignatureEncoding, Signer}; fn test_serialize_deserialize() { - let mut rng = SysRng.unwrap_err(); + let mut rng = rand::rng(); let sk = SigningKey::

::new(&mut rng); let msg = b"Hello, world!"; let sig = sk.try_sign(msg).unwrap(); @@ -221,7 +220,7 @@ mod tests { #[cfg(feature = "alloc")] fn test_serialize_deserialize_vec() { - let mut rng = SysRng.unwrap_err(); + let mut rng = rand::rng(); let sk = SigningKey::

::new(&mut rng); let msg = b"Hello, world!"; let sig = sk.try_sign(msg).unwrap(); @@ -240,7 +239,7 @@ mod tests { #[test] fn test_deserialize_fail_on_incorrect_length() { - let mut rng = SysRng.unwrap_err(); + let mut rng = rand::rng(); let sk = SigningKey::::new(&mut rng); let msg = b"Hello, world!"; let sig = sk.try_sign(msg).unwrap(); diff --git a/slh-dsa/src/signing_key.rs b/slh-dsa/src/signing_key.rs index a089e6c..3fdd3ff 100644 --- a/slh-dsa/src/signing_key.rs +++ b/slh-dsa/src/signing_key.rs @@ -351,10 +351,9 @@ impl SigningKeyLen for Shake { #[cfg(test)] mod tests { use crate::{ParameterSet, SigningKey, util::macros::test_parameter_sets}; - use rand::{TryRngCore, rngs::SysRng}; fn test_serialize_deserialize() { - let mut rng = SysRng.unwrap_err(); + let mut rng = rand::rng(); let sk = SigningKey::

::new(&mut rng); let bytes = sk.to_bytes(); let sk2 = SigningKey::

::try_from(bytes.as_slice()).unwrap(); @@ -364,7 +363,7 @@ mod tests { #[cfg(feature = "alloc")] fn test_serialize_deserialize_vec() { - let mut rng = SysRng.unwrap_err(); + let mut rng = rand::rng(); let sk = SigningKey::

::new(&mut rng); let vec = sk.to_vec(); let sk2 = SigningKey::

::try_from(vec.as_slice()).unwrap(); @@ -375,7 +374,7 @@ mod tests { #[test] fn test_deserialize_fail_on_incorrect_length() { - let mut rng = SysRng.unwrap_err(); + let mut rng = rand::rng(); let sk = SigningKey::::new(&mut rng); let bytes = sk.to_bytes(); let incorrect_bytes = &bytes[..bytes.len() - 1]; diff --git a/slh-dsa/src/verifying_key.rs b/slh-dsa/src/verifying_key.rs index 5eb75ab..db1860b 100644 --- a/slh-dsa/src/verifying_key.rs +++ b/slh-dsa/src/verifying_key.rs @@ -246,12 +246,11 @@ impl VerifyingKeyLen for Shake { mod tests { use crate::*; use hybrid_array::Array; - use rand::{TryRngCore, rngs::SysRng}; use signature::*; #[test] fn test_vk_serialize_deserialize() { - let mut rng = SysRng.unwrap_err(); + let mut rng = rand::rng(); let sk = SigningKey::::new(&mut rng); let vk = sk.verifying_key(); let vk_bytes: Array = (&vk).into(); diff --git a/slh-dsa/src/wots.rs b/slh-dsa/src/wots.rs index afd278e..465edd0 100644 --- a/slh-dsa/src/wots.rs +++ b/slh-dsa/src/wots.rs @@ -157,11 +157,11 @@ mod tests { use crate::{address::WotsHash, hashes::Shake128f}; use hex_literal::hex; use hybrid_array::Array; - use rand::{RngCore, TryRngCore, rngs::SysRng}; + use rand::Rng; fn test_sign_verify() { // Generate random sk_seed, pk_seed, message, address - let mut rng = SysRng.unwrap_err(); + let mut rng = rand::rng(); let sk_seed = SkSeed::new(&mut rng); let pk_seed = PkSeed::new(&mut rng); @@ -182,7 +182,7 @@ mod tests { fn test_sign_verify_fail() { // Generate random sk_seed, pk_seed, message - let mut rng = SysRng.unwrap_err(); + let mut rng = rand::rng(); let sk_seed = SkSeed::new(&mut rng); let pk_seed = PkSeed::new(&mut rng); diff --git a/slh-dsa/src/xmss.rs b/slh-dsa/src/xmss.rs index d80ece4..2bd4dd0 100644 --- a/slh-dsa/src/xmss.rs +++ b/slh-dsa/src/xmss.rs @@ -141,14 +141,13 @@ where { #[cfg(test)] mod tests { - use crate::{ PkSeed, SkSeed, address::WotsHash, hashes::Shake128f, util::macros::test_parameter_sets, xmss::XmssParams, }; use hex_literal::hex; use hybrid_array::Array; - use rand::{Rng, RngCore, TryRngCore, rngs::SysRng}; + use rand::{Rng, RngExt}; use typenum::Unsigned; #[test] @@ -203,7 +202,7 @@ mod tests { fn test_sign_verify() { // Generate random sk_seed, pk_seed, message, index, address - let mut rng = SysRng.unwrap_err(); + let mut rng = rand::rng(); let sk_seed = SkSeed::new(&mut rng); let pk_seed = PkSeed::new(&mut rng); @@ -226,7 +225,7 @@ mod tests { fn test_sign_verify_fail() { // Generate random sk_seed, pk_seed, message, index, address - let mut rng = SysRng.unwrap_err(); + let mut rng = rand::rng(); let sk_seed = SkSeed::new(&mut rng); let pk_seed = PkSeed::new(&mut rng); diff --git a/slh-dsa/tests/known_answer_tests.rs b/slh-dsa/tests/known_answer_tests.rs index c922574..37d5581 100644 --- a/slh-dsa/tests/known_answer_tests.rs +++ b/slh-dsa/tests/known_answer_tests.rs @@ -10,7 +10,7 @@ use aes::Aes256; use cipher::{KeyIvInit, StreamCipher}; use core::{convert::Infallible, error, fmt}; use ctr::Ctr128BE; -use rand_core::{RngCore, TryCryptoRng, TryRngCore}; +use rand_core::{Rng, TryCryptoRng, TryRng, UnwrapErr}; use sha2::Digest; use signature::Keypair; use signature::SignatureEncoding; @@ -38,7 +38,7 @@ impl KatRng { } } -impl TryRngCore for KatRng { +impl TryRng for KatRng { type Error = Infallible; fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), Self::Error> { @@ -65,7 +65,7 @@ impl TryCryptoRng for KatRng {} // Mock RNG that just returns a pre-determined bytestring struct ConstRng(Vec); -impl TryRngCore for ConstRng { +impl TryRng for ConstRng { type Error = RandError; fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), RandError> { let len = dest.len(); @@ -136,7 +136,7 @@ where rng.fill_bytes(&mut seed); let seed_rng = ConstRng(seed); - let sk = SigningKey::

::new(&mut seed_rng.unwrap_err()); + let sk = SigningKey::

::new(&mut UnwrapErr(seed_rng)); let pk = sk.verifying_key(); writeln!(resp, "pk = {}", hex::encode_upper(pk.to_bytes())).unwrap();