diff --git a/Cargo.lock b/Cargo.lock index a7056d60..699116fc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -46,6 +46,12 @@ dependencies = [ "memchr", ] +[[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" @@ -120,13 +126,13 @@ 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", "cpufeatures", - "rand_core 0.10.0-rc-5", + "rand_core 0.10.0-rc-6", ] [[package]] @@ -163,38 +169,37 @@ dependencies = [ [[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", "num-traits", - "rand_core 0.10.0-rc-5", + "rand_core 0.10.0-rc-6", "serdect", "zeroize", ] [[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]] @@ -228,9 +233,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 = [ "block-buffer", "const-oid", @@ -266,6 +271,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 = "futures-core" version = "0.3.31" @@ -323,15 +334,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]] @@ -349,12 +361,27 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" +[[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" @@ -388,6 +415,12 @@ dependencies = [ "typenum", ] +[[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" @@ -395,7 +428,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" dependencies = [ "equivalent", - "hashbrown", + "hashbrown 0.16.1", + "serde", + "serde_core", ] [[package]] @@ -416,13 +451,19 @@ checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" [[package]] name = "keccak" -version = "0.2.0-rc.0" +version = "0.2.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d546793a04a1d3049bd192856f804cfe96356e2cf36b54b4e575155babe9f41" +checksum = "5a412fe37705d515cba9dbf1448291a717e187e2351df908cfc0137cbec3d480" 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" @@ -441,6 +482,12 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" +[[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" @@ -506,15 +553,14 @@ dependencies = [ [[package]] name = "pkcs5" version = "0.8.0-rc.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f691b0c85812f5df7f91fa2c7f1593426b56916a140d73374ec16e87b9345d90" +source = "git+https://github.com/RustCrypto/formats#7368fd50e14a5a53dc552914a4585ed964417da4" dependencies = [ "aes", "aes-gcm", "cbc", "der", "pbkdf2", - "rand_core 0.10.0-rc-5", + "rand_core 0.10.0-rc-6", "scrypt", "sha2", "spki", @@ -523,12 +569,11 @@ dependencies = [ [[package]] name = "pkcs8" version = "0.11.0-rc.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80f8fa6196ede5a9f9ee95b44ca134bddc9b70e8913f9297bd58c909f5889a09" +source = "git+https://github.com/RustCrypto/formats#7368fd50e14a5a53dc552914a4585ed964417da4" dependencies = [ "der", "pkcs5", - "rand_core 0.10.0-rc-5", + "rand_core 0.10.0-rc-6", "spki", ] @@ -552,6 +597,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-macro-crate" version = "3.4.0" @@ -623,12 +678,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]] @@ -652,9 +706,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" @@ -716,7 +770,7 @@ dependencies = [ "pkcs8", "proptest", "rand 0.10.0-rc.7", - "rand_core 0.10.0-rc-5", + "rand_core 0.10.0-rc-6", "rstest", "serde", "serde_json", @@ -885,9 +939,9 @@ dependencies = [ [[package]] name = "sha1" -version = "0.11.0-rc.3" +version = "0.11.0-rc.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa1ae819b9870cadc959a052363de870944a1646932d274a4e270f64bf79e5ef" +checksum = "9c777f0a122a53fddb0beb6e706771197000b8eb5c9f42b5b850f450ef48c788" dependencies = [ "cfg-if", "cpufeatures", @@ -896,9 +950,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", @@ -907,9 +961,9 @@ dependencies = [ [[package]] name = "sha3" -version = "0.11.0-rc.3" +version = "0.11.0-rc.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2103ca0e6f4e9505eae906de5e5883e06fc3b2232fb5d6914890c7bbcb62f478" +checksum = "1deee7fbcdd62fbcffc9dc2f5f17f96adac881ec7e1506e1eedee1644d0cc535" dependencies = [ "digest", "keccak", @@ -922,7 +976,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c04b70a14ee5f15e2e0c785a5fdb2e9a51138dfe13ba3cf8eab037a9e60b1879" dependencies = [ "digest", - "rand_core 0.10.0-rc-5", + "rand_core 0.10.0-rc-6", ] [[package]] @@ -1019,6 +1073,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 = "universal-hash" version = "0.6.0-rc.6" @@ -1044,7 +1104,50 @@ 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]] +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]] @@ -1071,12 +1174,100 @@ dependencies = [ "memchr", ] +[[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 150353ac..15ce6695 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,20 +15,20 @@ exclude = ["marvin_toolkit/", "thirdparty/"] [dependencies] const-oid = { version = "0.10", default-features = false } -crypto-bigint = { version = "0.7.0-rc.21", default-features = false, features = ["zeroize", "alloc"] } +crypto-bigint = { version = "0.7.0-rc.22", default-features = false, features = ["zeroize", "alloc"] } crypto-primes = { version = "0.7.0-pre.7", default-features = false } digest = { version = "0.11.0-rc.7", default-features = false, features = ["alloc", "oid"] } -rand_core = { version = "0.10.0-rc-5", default-features = false } +rand_core = { version = "0.10.0-rc-6", default-features = false } signature = { version = "3.0.0-rc.8", default-features = false, features = ["alloc", "digest", "rand_core"] } zeroize = { version = "1.8", features = ["alloc"] } # optional dependencies -crypto-common = { version = "0.2.0-rc.11", optional = true, features = ["getrandom"] } +crypto-common = { version = "0.2.0-rc.13", optional = true, features = ["getrandom"] } pkcs1 = { version = "0.8.0-rc.4", optional = true, default-features = false, features = ["alloc", "pem"] } pkcs8 = { version = "0.11.0-rc.9", optional = true, default-features = false, features = ["alloc", "pem"] } serdect = { version = "0.4", optional = true } -sha1 = { version = "0.11.0-rc.3", optional = true, default-features = false, features = ["oid"] } -sha2 = { version = "0.11.0-rc.3", optional = true, default-features = false, features = ["oid"] } +sha1 = { version = "0.11.0-rc.4", 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, features = ["alloc"] } serde = { version = "1.0.184", optional = true, default-features = false, features = ["derive"] } @@ -38,10 +38,10 @@ hex-literal = "1" proptest = "1" serde_test = "1.0.89" rand = { version = "0.10.0-rc.7", features = ["chacha"] } -rand_core = { version = "0.10.0-rc-5", default-features = false } -sha1 = { version = "0.11.0-rc.3", default-features = false, features = ["oid"] } -sha2 = { version = "0.11.0-rc.3", default-features = false, features = ["oid"] } -sha3 = { version = "0.11.0-rc.3", default-features = false, features = ["oid"] } +rand_core = { version = "0.10.0-rc-6", default-features = false } +sha1 = { version = "0.11.0-rc.4", default-features = false, features = ["oid"] } +sha2 = { version = "0.11.0-rc.4", default-features = false, features = ["oid"] } +sha3 = { version = "0.11.0-rc.4", default-features = false, features = ["oid"] } hex = { version = "0.4.3", features = ["serde"] } serde_json = "1.0.138" serde = { version = "1.0.184", features = ["derive"] } @@ -67,3 +67,17 @@ opt-level = 2 [profile.bench] debug = true + +[patch.crates-io.crypto-primes] +git = "https://github.com/tarcieri/crypto-primes" +branch = "crypto-bigint/v0.7.0-rc.22" + +[patch.crates-io.pkcs5] +git = "https://github.com/RustCrypto/formats" + +[patch.crates-io.pkcs8] +git = "https://github.com/RustCrypto/formats" + +[patch.crates-io.rand] +git = "https://github.com/rust-random/rand" +branch = "rand_core/v0.10.0-rc-6" diff --git a/src/dummy_rng.rs b/src/dummy_rng.rs index 4140c6d1..539f3c41 100644 --- a/src/dummy_rng.rs +++ b/src/dummy_rng.rs @@ -1,12 +1,12 @@ use core::convert::Infallible; -use rand_core::{TryCryptoRng, TryRngCore}; +use rand_core::{TryCryptoRng, TryRng}; /// This is a dummy RNG for cases when we need a concrete RNG type /// which does not get used. #[derive(Copy, Clone)] pub(crate) struct DummyRng; -impl TryRngCore for DummyRng { +impl TryRng for DummyRng { type Error = Infallible; fn try_next_u32(&mut self) -> Result { unimplemented!(); diff --git a/src/oaep.rs b/src/oaep.rs index 11cc442f..bd3a3a28 100644 --- a/src/oaep.rs +++ b/src/oaep.rs @@ -329,7 +329,7 @@ mod tests { use crypto_bigint::BoxedUint; use digest::{Digest, FixedOutputReset}; use rand::rngs::ChaCha8Rng; - use rand_core::{RngCore, SeedableRng}; + use rand_core::{Rng, SeedableRng}; use sha1::Sha1; use sha2::{Sha224, Sha256, Sha384, Sha512}; use sha3::{Sha3_256, Sha3_384, Sha3_512}; diff --git a/src/pkcs1v15.rs b/src/pkcs1v15.rs index d6eecab1..92ebee18 100644 --- a/src/pkcs1v15.rs +++ b/src/pkcs1v15.rs @@ -275,7 +275,7 @@ mod tests { use base64ct::{Base64, Encoding}; use hex_literal::hex; use rand::rngs::ChaCha8Rng; - use rand_core::{RngCore, SeedableRng}; + use rand_core::{Rng, SeedableRng}; use rstest::rstest; use sha1::{Digest, Sha1}; use sha2::Sha256;