From 8137fa3061a23b386eae3d23338caeb2d2c0e333 Mon Sep 17 00:00:00 2001 From: Arthur Gautier Date: Sat, 22 Feb 2025 14:19:01 -0800 Subject: [PATCH 1/4] signature: bring back signature in the workspace --- Cargo.lock | 54 ++++++--- Cargo.toml | 6 +- signature/Cargo.lock | 269 ------------------------------------------- signature/Cargo.toml | 2 +- 4 files changed, 43 insertions(+), 288 deletions(-) delete mode 100644 signature/Cargo.lock diff --git a/Cargo.lock b/Cargo.lock index bab9ae87..999fd6fa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -23,7 +23,7 @@ checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" name = "async-signature" version = "0.6.0-pre.4" dependencies = [ - "signature 2.3.0-pre.6 (registry+https://github.com/rust-lang/crates.io-index)", + "signature", ] [[package]] @@ -109,6 +109,15 @@ version = "0.10.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68ff6be19477a1bd5441f382916a89bc2a0b2c35db6d41e0f6e8538bf6d6463f" +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + [[package]] name = "crypto" version = "0.6.0-pre" @@ -119,7 +128,7 @@ dependencies = [ "digest 0.11.0-pre.10", "elliptic-curve", "password-hash", - "signature 2.3.0-pre.6", + "signature", "universal-hash", ] @@ -163,15 +172,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "digest" -version = "0.11.0-pre.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf2e3d6615d99707295a9673e889bf363a04b2a466bd320c65a72536f7577379" -dependencies = [ - "crypto-common 0.2.0-rc.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "digest" version = "0.11.0-pre.10" @@ -184,6 +184,16 @@ dependencies = [ "zeroize", ] +[[package]] +name = "digest" +version = "0.11.0-pre.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c478574b20020306f98d61c8ca3322d762e1ff08117422ac6106438605ea516" +dependencies = [ + "block-buffer", + "crypto-common 0.2.0-rc.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "elliptic-curve" version = "0.14.0-rc.1" @@ -263,6 +273,12 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "hex-literal" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcaaec4551594c969335c98c903c1397853d4198408ea609190f420500f6be71" + [[package]] name = "hybrid-array" version = "0.2.3" @@ -387,20 +403,24 @@ dependencies = [ ] [[package]] -name = "signature" -version = "2.3.0-pre.6" +name = "sha2" +version = "0.11.0-pre.4" +source = "git+https://github.com/RustCrypto/hashes.git?branch=edition_upgrade#cfe82a0f1a9a6c89c5b6d8309f2603c644dc97ea" dependencies = [ - "rand_core 0.9.2", + "cfg-if", + "cpufeatures", + "digest 0.11.0-pre.10 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "signature" version = "2.3.0-pre.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4633ec5613e4218fbab07568ca79ee388e3c041af75f0f83a15f040f096f94cf" dependencies = [ - "digest 0.11.0-pre.9", + "digest 0.11.0-pre.10 (registry+https://github.com/rust-lang/crates.io-index)", + "hex-literal", "rand_core 0.9.2", + "sha2", + "signature_derive", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 811b606a..cc2aeea4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,8 +11,12 @@ members = [ "password-hash", "signature_derive", "universal-hash", + "signature", ] exclude = [ "elliptic-curve", - "signature", ] + +[patch.crates-io] +signature = { path = "signature" } +sha2 = { git = "https://github.com/RustCrypto/hashes.git", branch = "edition_upgrade" } diff --git a/signature/Cargo.lock b/signature/Cargo.lock deleted file mode 100644 index c2f68547..00000000 --- a/signature/Cargo.lock +++ /dev/null @@ -1,269 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "bitflags" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" - -[[package]] -name = "block-buffer" -version = "0.11.0-rc.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fd016a0ddc7cb13661bf5576073ce07330a693f8608a1320b4e20561cc12cdc" -dependencies = [ - "hybrid-array", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "cpufeatures" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" -dependencies = [ - "libc", -] - -[[package]] -name = "crypto-common" -version = "0.2.0-rc.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0b8ce8218c97789f16356e7896b3714f26c2ee1079b79c0b7ae7064bb9089fa" -dependencies = [ - "hybrid-array", -] - -[[package]] -name = "digest" -version = "0.11.0-pre.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf2e3d6615d99707295a9673e889bf363a04b2a466bd320c65a72536f7577379" -dependencies = [ - "block-buffer", - "crypto-common", -] - -[[package]] -name = "getrandom" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" -dependencies = [ - "cfg-if", - "libc", - "wasi", - "windows-targets", -] - -[[package]] -name = "hex-literal" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcaaec4551594c969335c98c903c1397853d4198408ea609190f420500f6be71" - -[[package]] -name = "hybrid-array" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2d35805454dc9f8662a98d6d61886ffe26bd465f5960e0e55345c70d5c0d2a9" -dependencies = [ - "typenum", -] - -[[package]] -name = "libc" -version = "0.2.169" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" - -[[package]] -name = "proc-macro2" -version = "1.0.93" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rand_core" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a509b1a2ffbe92afab0e55c8fd99dea1c280e8171bd2d88682bb20bc41cbc2c" -dependencies = [ - "getrandom", - "zerocopy", -] - -[[package]] -name = "sha2" -version = "0.11.0-pre.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "540c0893cce56cdbcfebcec191ec8e0f470dd1889b6e7a0b503e310a94a168f5" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "signature" -version = "2.3.0-pre.6" -dependencies = [ - "digest", - "hex-literal", - "rand_core", - "sha2", - "signature_derive", -] - -[[package]] -name = "signature_derive" -version = "2.2.0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "syn" -version = "2.0.98" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "typenum" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" - -[[package]] -name = "unicode-ident" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00e2473a93778eb0bad35909dff6a10d28e63f792f16ed15e404fca9d5eeedbe" - -[[package]] -name = "wasi" -version = "0.13.3+wasi-0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" -dependencies = [ - "wit-bindgen-rt", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "wit-bindgen-rt" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" -dependencies = [ - "bitflags", -] - -[[package]] -name = "zerocopy" -version = "0.8.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dde3bb8c68a8f3f1ed4ac9221aad6b10cece3e60a8e2ea54a6a2dec806d0084c" -dependencies = [ - "zerocopy-derive", -] - -[[package]] -name = "zerocopy-derive" -version = "0.8.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eea57037071898bf96a6da35fd626f4f27e9cee3ead2a6c703cf09d472b2e700" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] diff --git a/signature/Cargo.toml b/signature/Cargo.toml index 7a428af8..c8a0047d 100644 --- a/signature/Cargo.toml +++ b/signature/Cargo.toml @@ -15,7 +15,7 @@ rust-version = "1.85" [dependencies] derive = { package = "signature_derive", version = "2", optional = true, path = "../signature_derive" } -digest = { version = "=0.11.0-pre.9", optional = true, default-features = false } +digest = { version = "=0.11.0-pre.10", optional = true, default-features = false } rand_core = { version = "0.9", optional = true, default-features = false } [dev-dependencies] From 35ae7e3d06ba2934cd87586b6db7a9e2f3512639 Mon Sep 17 00:00:00 2001 From: Arthur Gautier Date: Sat, 22 Feb 2025 21:54:29 -0800 Subject: [PATCH 2/4] signature: disable minimal-versions --- .github/workflows/signature.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/signature.yml b/.github/workflows/signature.yml index 905b447c..00e6f0a2 100644 --- a/.github/workflows/signature.yml +++ b/.github/workflows/signature.yml @@ -42,6 +42,7 @@ jobs: - run: cargo build --target ${{ matrix.target }} --release --no-default-features --features derive,rand_core minimal-versions: + if: false # disabled until we stop using pre-releases uses: RustCrypto/actions/.github/workflows/minimal-versions.yml@master with: working-directory: ${{ github.workflow }} From 6f98e0180079c3e17394ce5e94ded4ec68d1216b Mon Sep 17 00:00:00 2001 From: Arthur Gautier Date: Sat, 22 Feb 2025 21:26:50 -0800 Subject: [PATCH 3/4] async-signature: fixup tests --- async-signature/tests/mock_impl.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/async-signature/tests/mock_impl.rs b/async-signature/tests/mock_impl.rs index 5391966b..d8e17ea4 100644 --- a/async-signature/tests/mock_impl.rs +++ b/async-signature/tests/mock_impl.rs @@ -28,7 +28,9 @@ where #[cfg(feature = "rand_core")] impl async_signature::AsyncRandomizedSigner for MockSigner { - async fn try_sign_with_rng_async( + async fn try_sign_with_rng_async< + R: async_signature::signature::rand_core::TryCryptoRng + ?Sized, + >( &self, _rng: &mut R, _msg: &[u8], From 5a1c60364b1ae45459b74e96c1916d0605081632 Mon Sep 17 00:00:00 2001 From: Arthur Gautier Date: Wed, 12 Feb 2025 15:54:32 -0800 Subject: [PATCH 4/4] elliptic-curve: bump rand_core to 0.9.0 --- Cargo.lock | 223 ++++++++--- Cargo.toml | 20 +- elliptic-curve/Cargo.lock | 447 ----------------------- elliptic-curve/Cargo.toml | 10 +- elliptic-curve/src/ecdh.rs | 4 +- elliptic-curve/src/point/non_identity.rs | 4 +- elliptic-curve/src/scalar/blinded.rs | 6 +- elliptic-curve/src/scalar/nonzero.rs | 4 +- elliptic-curve/src/scalar/primitive.rs | 4 +- elliptic-curve/src/secret_key.rs | 4 +- 10 files changed, 206 insertions(+), 520 deletions(-) delete mode 100644 elliptic-curve/Cargo.lock diff --git a/Cargo.lock b/Cargo.lock index 999fd6fa..3c89109e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -50,6 +50,18 @@ version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + [[package]] name = "blobby" version = "0.4.0-pre.0" @@ -62,7 +74,7 @@ version = "0.11.0-rc.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a229bfd78e4827c91b9b95784f69492c1b77c1ab75a45a8a037b139215086f94" dependencies = [ - "hybrid-array 0.3.0", + "hybrid-array", "zeroize", ] @@ -72,7 +84,7 @@ version = "0.4.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee88d14c41bbae2e333f574a27fc73d96fe1039e5a356c20d06a7f2a34cd8e5a" dependencies = [ - "hybrid-array 0.3.0", + "hybrid-array", ] [[package]] @@ -134,13 +146,12 @@ dependencies = [ [[package]] name = "crypto-bigint" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96272c2ff28b807e09250b180ad1fb7889a3258f7455759b5c3c58b719467130" +version = "0.7.0-pre.0" +source = "git+https://github.com/RustCrypto/crypto-bigint.git#8fe22cba8196b08acd06546757f2f474aa20db1e" dependencies = [ - "hybrid-array 0.2.3", + "hybrid-array", "num-traits", - "rand_core 0.6.4", + "rand_core", "subtle", "zeroize", ] @@ -149,8 +160,8 @@ dependencies = [ name = "crypto-common" version = "0.2.0-rc.2" dependencies = [ - "hybrid-array 0.3.0", - "rand_core 0.9.2", + "hybrid-array", + "rand_core", ] [[package]] @@ -159,7 +170,7 @@ version = "0.2.0-rc.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "170d71b5b14dec99db7739f6fc7d6ec2db80b78c3acb77db48392ccc3d8a9ea0" dependencies = [ - "hybrid-array 0.3.0", + "hybrid-array", ] [[package]] @@ -169,6 +180,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82db698b33305f0134faf590b9d1259dc171b5481ac41d5c8146c3b3ee7d4319" dependencies = [ "const-oid", + "pem-rfc7468", "zeroize", ] @@ -191,7 +203,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c478574b20020306f98d61c8ca3322d762e1ff08117422ac6106438605ea516" dependencies = [ "block-buffer", + "const-oid", "crypto-common 0.2.0-rc.2 (registry+https://github.com/rust-lang/crates.io-index)", + "subtle", ] [[package]] @@ -199,37 +213,42 @@ name = "elliptic-curve" version = "0.14.0-rc.1" dependencies = [ "base16ct", + "base64ct", "crypto-bigint", + "digest 0.11.0-pre.10 (registry+https://github.com/rust-lang/crates.io-index)", "ff", "group", - "hybrid-array 0.2.3", + "hex-literal", + "hkdf", + "hybrid-array", + "pem-rfc7468", "pkcs8", - "rand_core 0.6.4", + "rand_core", "sec1", + "serde_json", + "serdect", + "sha2", + "sha3", "subtle", + "tap", "zeroize", ] [[package]] name = "ff" version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +source = "git+https://github.com/pinkforest/ff.git?branch=bump-rand-core#c734f7f21d6639bc6494dde538209d0770207c49" dependencies = [ - "rand_core 0.6.4", + "bitvec", + "rand_core", "subtle", ] [[package]] -name = "getrandom" -version = "0.2.15" +name = "funty" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", -] +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "getrandom" @@ -239,18 +258,17 @@ checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" dependencies = [ "cfg-if", "libc", - "wasi 0.13.3+wasi-0.2.2", + "wasi", "windows-targets", ] [[package]] name = "group" version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +source = "git+https://github.com/pinkforest/group.git?branch=bump-rand-0.9#06ac6fb11ced26fbf980ee65e74fced4da66ec3e" dependencies = [ "ff", - "rand_core 0.6.4", + "rand_core", "subtle", ] @@ -280,13 +298,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bcaaec4551594c969335c98c903c1397853d4198408ea609190f420500f6be71" [[package]] -name = "hybrid-array" -version = "0.2.3" +name = "hkdf" +version = "0.13.0-pre.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2d35805454dc9f8662a98d6d61886ffe26bd465f5960e0e55345c70d5c0d2a9" +checksum = "00176ff81091018d42ff82e8324f8e5adb0b7e0468d1358f653972562dbff031" dependencies = [ - "typenum", - "zeroize", + "hmac", +] + +[[package]] +name = "hmac" +version = "0.13.0-pre.4" +source = "git+https://github.com/baloo/MACs.git?branch=baloo%2Fedition-2024#e97856eac291ab85e181af927192277532af34ca" +dependencies = [ + "digest 0.11.0-pre.10 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -306,14 +331,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac5e145e8ade9f74c0a5efc60ccb4e714b0144f7e2220b7ca64254feee71c57f" dependencies = [ "block-padding", - "hybrid-array 0.3.0", + "hybrid-array", +] + +[[package]] +name = "itoa" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" + +[[package]] +name = "keccak" +version = "0.2.0-pre.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7cdd4f0dc5807b9a2b25dd48a3f58e862606fe7bd47f41ecde36e97422d7e90" +dependencies = [ + "cpufeatures", ] [[package]] name = "kem" version = "0.3.0-pre.0" dependencies = [ - "rand_core 0.9.2", + "rand_core", "zeroize", ] @@ -323,6 +363,12 @@ version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + [[package]] name = "num-traits" version = "0.2.19" @@ -337,10 +383,19 @@ name = "password-hash" version = "0.6.0-rc.0" dependencies = [ "base64ct", - "rand_core 0.9.2", + "rand_core", "subtle", ] +[[package]] +name = "pem-rfc7468" +version = "1.0.0-rc.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2dfbfa5c6f0906884269722c5478e72fd4d6c0e24fe600332c6d62359567ce1" +dependencies = [ + "base64ct", +] + [[package]] name = "pkcs8" version = "0.11.0-rc.2" @@ -370,13 +425,10 @@ dependencies = [ ] [[package]] -name = "rand_core" -version = "0.6.4" +name = "radium" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.15", -] +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" [[package]] name = "rand_core" @@ -384,24 +436,73 @@ version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a509b1a2ffbe92afab0e55c8fd99dea1c280e8171bd2d88682bb20bc41cbc2c" dependencies = [ - "getrandom 0.3.1", + "getrandom", "zerocopy", ] +[[package]] +name = "ryu" +version = "1.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd" + [[package]] name = "sec1" -version = "0.8.0-rc.3" +version = "0.8.0-rc.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1988446eff153796413a73669dfaa4caa3f5ce8b25fac89e3821a39c611772e" +checksum = "a017a4aa8f0bd51e9d0184d98042dfe9285218fec098493f47d9a8aa0f1a3f27" dependencies = [ "base16ct", "der", - "hybrid-array 0.2.3", + "hybrid-array", "pkcs8", + "serdect", "subtle", "zeroize", ] +[[package]] +name = "serde" +version = "1.0.218" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.218" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.139" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44f86c3acccc9c65b153fe1b85a3be07fe5515274ec9f0653b4a0875731c72a6" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "serdect" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f42f67da2385b51a5f9652db9c93d78aeaf7610bf5ec366080b6de810604af53" +dependencies = [ + "base16ct", + "serde", +] + [[package]] name = "sha2" version = "0.11.0-pre.4" @@ -412,13 +513,22 @@ dependencies = [ "digest 0.11.0-pre.10 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "sha3" +version = "0.11.0-pre.4" +source = "git+https://github.com/RustCrypto/hashes.git?branch=edition_upgrade#cfe82a0f1a9a6c89c5b6d8309f2603c644dc97ea" +dependencies = [ + "digest 0.11.0-pre.10 (registry+https://github.com/rust-lang/crates.io-index)", + "keccak", +] + [[package]] name = "signature" version = "2.3.0-pre.6" dependencies = [ "digest 0.11.0-pre.10 (registry+https://github.com/rust-lang/crates.io-index)", "hex-literal", - "rand_core 0.9.2", + "rand_core", "sha2", "signature_derive", ] @@ -465,6 +575,12 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + [[package]] name = "typenum" version = "1.18.0" @@ -485,12 +601,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - [[package]] name = "wasi" version = "0.13.3+wasi-0.2.2" @@ -573,6 +683,15 @@ dependencies = [ "bitflags", ] +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + [[package]] name = "zerocopy" version = "0.8.20" diff --git a/Cargo.toml b/Cargo.toml index cc2aeea4..bc4d5882 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,16 +7,30 @@ members = [ "crypto", "crypto-common", "digest", + "elliptic-curve", "kem", "password-hash", "signature_derive", "universal-hash", "signature", ] -exclude = [ - "elliptic-curve", -] [patch.crates-io] signature = { path = "signature" } + +# https://github.com/RustCrypto/hashes/pull/652 sha2 = { git = "https://github.com/RustCrypto/hashes.git", branch = "edition_upgrade" } +sha3 = { git = "https://github.com/RustCrypto/hashes.git", branch = "edition_upgrade" } + +# https://github.com/RustCrypto/MACs/pull/178 +hmac = { git = "https://github.com/baloo/MACs.git", branch = "baloo/edition-2024" } + +# https://github.com/RustCrypto/crypto-bigint/pull/762 +# https://github.com/RustCrypto/crypto-bigint/pull/765 +crypto-bigint = { git = "https://github.com/RustCrypto/crypto-bigint.git" } + +# https://github.com/zkcrypto/ff/pull/122 +ff = { git = "https://github.com/pinkforest/ff.git", branch = "bump-rand-core" } + +# https://github.com/zkcrypto/group/pull/56 +group = { git = "https://github.com/pinkforest/group.git", branch = "bump-rand-0.9" } diff --git a/elliptic-curve/Cargo.lock b/elliptic-curve/Cargo.lock deleted file mode 100644 index 1659ec06..00000000 --- a/elliptic-curve/Cargo.lock +++ /dev/null @@ -1,447 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "autocfg" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" - -[[package]] -name = "base16ct" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" - -[[package]] -name = "base64ct" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" - -[[package]] -name = "bitvec" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" -dependencies = [ - "funty", - "radium", - "tap", - "wyz", -] - -[[package]] -name = "block-buffer" -version = "0.11.0-rc.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fd016a0ddc7cb13661bf5576073ce07330a693f8608a1320b4e20561cc12cdc" -dependencies = [ - "hybrid-array", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "const-oid" -version = "0.10.0-rc.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68ff6be19477a1bd5441f382916a89bc2a0b2c35db6d41e0f6e8538bf6d6463f" - -[[package]] -name = "cpufeatures" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" -dependencies = [ - "libc", -] - -[[package]] -name = "crypto-bigint" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96272c2ff28b807e09250b180ad1fb7889a3258f7455759b5c3c58b719467130" -dependencies = [ - "hybrid-array", - "num-traits", - "rand_core", - "subtle", - "zeroize", -] - -[[package]] -name = "crypto-common" -version = "0.2.0-rc.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0b8ce8218c97789f16356e7896b3714f26c2ee1079b79c0b7ae7064bb9089fa" -dependencies = [ - "getrandom", - "hybrid-array", - "rand_core", -] - -[[package]] -name = "der" -version = "0.8.0-rc.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82db698b33305f0134faf590b9d1259dc171b5481ac41d5c8146c3b3ee7d4319" -dependencies = [ - "const-oid", - "pem-rfc7468", - "zeroize", -] - -[[package]] -name = "digest" -version = "0.11.0-pre.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf2e3d6615d99707295a9673e889bf363a04b2a466bd320c65a72536f7577379" -dependencies = [ - "block-buffer", - "const-oid", - "crypto-common", - "subtle", -] - -[[package]] -name = "elliptic-curve" -version = "0.14.0-rc.1" -dependencies = [ - "base16ct", - "base64ct", - "crypto-bigint", - "digest", - "ff", - "group", - "hex-literal", - "hkdf", - "hybrid-array", - "pem-rfc7468", - "pkcs8", - "rand_core", - "sec1", - "serde_json", - "serdect", - "sha2", - "sha3", - "subtle", - "tap", - "zeroize", -] - -[[package]] -name = "ff" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" -dependencies = [ - "bitvec", - "rand_core", - "subtle", -] - -[[package]] -name = "funty" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "group" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" -dependencies = [ - "ff", - "rand_core", - "subtle", -] - -[[package]] -name = "hex-literal" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcaaec4551594c969335c98c903c1397853d4198408ea609190f420500f6be71" - -[[package]] -name = "hkdf" -version = "0.13.0-pre.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00176ff81091018d42ff82e8324f8e5adb0b7e0468d1358f653972562dbff031" -dependencies = [ - "hmac", -] - -[[package]] -name = "hmac" -version = "0.13.0-pre.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4b1fb14e4df79f9406b434b60acef9f45c26c50062cccf1346c6103b8c47d58" -dependencies = [ - "digest", -] - -[[package]] -name = "hybrid-array" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2d35805454dc9f8662a98d6d61886ffe26bd465f5960e0e55345c70d5c0d2a9" -dependencies = [ - "typenum", - "zeroize", -] - -[[package]] -name = "itoa" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" - -[[package]] -name = "keccak" -version = "0.2.0-pre.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7cdd4f0dc5807b9a2b25dd48a3f58e862606fe7bd47f41ecde36e97422d7e90" -dependencies = [ - "cpufeatures", -] - -[[package]] -name = "libc" -version = "0.2.169" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", -] - -[[package]] -name = "pem-rfc7468" -version = "1.0.0-rc.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2dfbfa5c6f0906884269722c5478e72fd4d6c0e24fe600332c6d62359567ce1" -dependencies = [ - "base64ct", -] - -[[package]] -name = "pkcs8" -version = "0.11.0-rc.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f22636de7c995e997ed3d8d2949b7414d4faba3efa7312a6c0e75d875a14bdd4" -dependencies = [ - "der", - "spki", -] - -[[package]] -name = "proc-macro2" -version = "1.0.93" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "radium" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom", -] - -[[package]] -name = "ryu" -version = "1.0.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd" - -[[package]] -name = "sec1" -version = "0.8.0-rc.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1988446eff153796413a73669dfaa4caa3f5ce8b25fac89e3821a39c611772e" -dependencies = [ - "base16ct", - "der", - "hybrid-array", - "pkcs8", - "serdect", - "subtle", - "zeroize", -] - -[[package]] -name = "serde" -version = "1.0.218" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.218" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.139" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44f86c3acccc9c65b153fe1b85a3be07fe5515274ec9f0653b4a0875731c72a6" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "serdect" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f42f67da2385b51a5f9652db9c93d78aeaf7610bf5ec366080b6de810604af53" -dependencies = [ - "base16ct", - "serde", -] - -[[package]] -name = "sha2" -version = "0.11.0-pre.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "540c0893cce56cdbcfebcec191ec8e0f470dd1889b6e7a0b503e310a94a168f5" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "sha3" -version = "0.11.0-pre.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e485881f388c2818d709796dc883c1ffcadde9d1f0e054f3a5c14974185261a6" -dependencies = [ - "digest", - "keccak", -] - -[[package]] -name = "spki" -version = "0.8.0-rc.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37ac66481418fd7afdc584adcf3be9aa572cf6c2858814494dc2a01755f050bc" -dependencies = [ - "base64ct", - "der", -] - -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - -[[package]] -name = "syn" -version = "2.0.98" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - -[[package]] -name = "typenum" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" - -[[package]] -name = "unicode-ident" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00e2473a93778eb0bad35909dff6a10d28e63f792f16ed15e404fca9d5eeedbe" - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wyz" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" -dependencies = [ - "tap", -] - -[[package]] -name = "zeroize" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" diff --git a/elliptic-curve/Cargo.toml b/elliptic-curve/Cargo.toml index 7166527b..b5c0915e 100644 --- a/elliptic-curve/Cargo.toml +++ b/elliptic-curve/Cargo.toml @@ -18,22 +18,22 @@ rust-version = "1.85" [dependencies] base16ct = "0.2" -crypto-bigint = { version = "0.6", default-features = false, features = ["rand_core", "hybrid-array", "zeroize"] } -hybrid-array = { version = "0.2", default-features = false, features = ["zeroize"] } -rand_core = { version = "0.6.4", default-features = false } +crypto-bigint = { version = "0.7.0-pre", default-features = false, features = ["rand_core", "hybrid-array", "zeroize"] } +hybrid-array = { version = "0.3", default-features = false, features = ["zeroize"] } +rand_core = { version = "0.9.0", default-features = false } subtle = { version = "2.6", default-features = false } zeroize = { version = "1.7", default-features = false } # optional dependencies base64ct = { version = "1", optional = true, default-features = false, features = ["alloc"] } -digest = { version = "=0.11.0-pre.9", optional = true } +digest = { version = "=0.11.0-pre.10", optional = true } ff = { version = "0.13", optional = true, default-features = false } group = { version = "0.13", optional = true, default-features = false } hkdf = { version = "=0.13.0-pre.4", optional = true, default-features = false } hex-literal = { version = "1", optional = true } pem-rfc7468 = { version = "1.0.0-rc.2", optional = true, features = ["alloc"] } pkcs8 = { version = "0.11.0-rc.1", optional = true, default-features = false } -sec1 = { version = "0.8.0-rc.3", optional = true, features = ["subtle", "zeroize"] } +sec1 = { version = "0.8.0-rc.4", optional = true, features = ["subtle", "zeroize"] } serdect = { version = "0.3", optional = true, default-features = false, features = ["alloc"] } serde_json = { version = "1.0.121", optional = true, default-features = false, features = ["alloc"] } tap = { version = "1.0.1", optional = true, default-features = false } # hack for minimal-versions support for `bits` diff --git a/elliptic-curve/src/ecdh.rs b/elliptic-curve/src/ecdh.rs index 88b88522..c4881fe6 100644 --- a/elliptic-curve/src/ecdh.rs +++ b/elliptic-curve/src/ecdh.rs @@ -34,7 +34,7 @@ use core::{borrow::Borrow, fmt}; use digest::{Digest, crypto_common::BlockSizeUser}; use group::Curve as _; use hkdf::{Hkdf, hmac::SimpleHmac}; -use rand_core::CryptoRngCore; +use rand_core::CryptoRng; use zeroize::{Zeroize, ZeroizeOnDrop}; /// Low-level Elliptic Curve Diffie-Hellman (ECDH) function. @@ -108,7 +108,7 @@ where C: CurveArithmetic, { /// Generate a cryptographically random [`EphemeralSecret`]. - pub fn random(rng: &mut impl CryptoRngCore) -> Self { + pub fn random(rng: &mut R) -> Self { Self { scalar: NonZeroScalar::random(rng), } diff --git a/elliptic-curve/src/point/non_identity.rs b/elliptic-curve/src/point/non_identity.rs index 1cb1a7fd..c118852c 100644 --- a/elliptic-curve/src/point/non_identity.rs +++ b/elliptic-curve/src/point/non_identity.rs @@ -3,7 +3,7 @@ use core::ops::{Deref, Mul}; use group::{Curve, GroupEncoding, prime::PrimeCurveAffine}; -use rand_core::{CryptoRng, RngCore}; +use rand_core::CryptoRng; use subtle::{Choice, ConditionallySelectable, ConstantTimeEq, CtOption}; #[cfg(feature = "serde")] @@ -58,7 +58,7 @@ where P: ConditionallySelectable + ConstantTimeEq + Curve + Default, { /// Generate a random `NonIdentity`. - pub fn random(mut rng: impl CryptoRng + RngCore) -> Self { + pub fn random(mut rng: R) -> Self { loop { if let Some(point) = Self::new(P::random(&mut rng)).into() { break point; diff --git a/elliptic-curve/src/scalar/blinded.rs b/elliptic-curve/src/scalar/blinded.rs index 685ba9d5..6638e84c 100644 --- a/elliptic-curve/src/scalar/blinded.rs +++ b/elliptic-curve/src/scalar/blinded.rs @@ -4,7 +4,7 @@ use super::Scalar; use crate::{CurveArithmetic, ops::Invert}; use core::fmt; use group::ff::Field; -use rand_core::CryptoRngCore; +use rand_core::CryptoRng; use subtle::CtOption; use zeroize::Zeroize; @@ -37,8 +37,8 @@ impl BlindedScalar where C: CurveArithmetic, { - /// Create a new [`BlindedScalar`] from a scalar and a [`CryptoRngCore`]. - pub fn new(scalar: Scalar, rng: &mut impl CryptoRngCore) -> Self { + /// Create a new [`BlindedScalar`] from a scalar and a [`CryptoRng`]. + pub fn new(scalar: Scalar, rng: &mut R) -> Self { Self { scalar, mask: Scalar::::random(rng), diff --git a/elliptic-curve/src/scalar/nonzero.rs b/elliptic-curve/src/scalar/nonzero.rs index 74a7d41a..0500abe4 100644 --- a/elliptic-curve/src/scalar/nonzero.rs +++ b/elliptic-curve/src/scalar/nonzero.rs @@ -13,7 +13,7 @@ use core::{ }; use crypto_bigint::{ArrayEncoding, Integer}; use ff::{Field, PrimeField}; -use rand_core::CryptoRngCore; +use rand_core::CryptoRng; use subtle::{Choice, ConditionallySelectable, ConstantTimeEq, CtOption}; use zeroize::Zeroize; @@ -47,7 +47,7 @@ where C: CurveArithmetic, { /// Generate a random `NonZeroScalar`. - pub fn random(mut rng: &mut impl CryptoRngCore) -> Self { + pub fn random(mut rng: &mut R) -> Self { // Use rejection sampling to eliminate zero values. // While this method isn't constant-time, the attacker shouldn't learn // anything about unrelated outputs so long as `rng` is a secure `CryptoRng`. diff --git a/elliptic-curve/src/scalar/primitive.rs b/elliptic-curve/src/scalar/primitive.rs index e61d574b..b6720b0a 100644 --- a/elliptic-curve/src/scalar/primitive.rs +++ b/elliptic-curve/src/scalar/primitive.rs @@ -14,7 +14,7 @@ use core::{ ops::{Add, AddAssign, Neg, ShrAssign, Sub, SubAssign}, str, }; -use rand_core::CryptoRngCore; +use rand_core::CryptoRng; use subtle::{ Choice, ConditionallySelectable, ConstantTimeEq, ConstantTimeGreater, ConstantTimeLess, CtOption, @@ -65,7 +65,7 @@ where pub const MODULUS: C::Uint = C::ORDER; /// Generate a random [`ScalarPrimitive`]. - pub fn random(rng: &mut impl CryptoRngCore) -> Self { + pub fn random(rng: &mut R) -> Self { Self { inner: C::Uint::random_mod(rng, &NonZero::new(Self::MODULUS).unwrap()), } diff --git a/elliptic-curve/src/secret_key.rs b/elliptic-curve/src/secret_key.rs index 7da6c2e0..02f9778e 100644 --- a/elliptic-curve/src/secret_key.rs +++ b/elliptic-curve/src/secret_key.rs @@ -15,7 +15,7 @@ use subtle::{Choice, ConstantTimeEq}; use zeroize::{Zeroize, ZeroizeOnDrop, Zeroizing}; #[cfg(feature = "arithmetic")] -use crate::{CurveArithmetic, NonZeroScalar, PublicKey, rand_core::CryptoRngCore}; +use crate::{CurveArithmetic, NonZeroScalar, PublicKey, rand_core::CryptoRng}; #[cfg(feature = "jwk")] use crate::jwk::{JwkEcKey, JwkParameters}; @@ -91,7 +91,7 @@ where /// Generate a random [`SecretKey`]. #[cfg(feature = "arithmetic")] - pub fn random(rng: &mut impl CryptoRngCore) -> Self + pub fn random(rng: &mut R) -> Self where C: CurveArithmetic, {