diff --git a/Cargo.lock b/Cargo.lock index ccde6eb..a5ef966 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -85,9 +85,9 @@ dependencies = [ [[package]] name = "cmov" -version = "0.4.3" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c11ed919bd3bae4af5ab56372b627dfc32622aba6cec36906e8ab46746037c9d" +checksum = "de0758edba32d61d1fd9f4d69491b47604b91ee2f7e6b33de7e54ca4ebe55dc3" [[package]] name = "cobs" @@ -121,9 +121,9 @@ checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" [[package]] name = "crypto-bigint" -version = "0.7.0-rc.18" +version = "0.7.0-rc.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37387ceb32048ff590f2cbd24d8b05fffe63c3f69a5cfa089d4f722ca4385a19" +checksum = "f9f9a78b88bb8255ec59a81423aa92ada22f96883f9ae59dcb68613907636ae5" dependencies = [ "ctutils", "getrandom", @@ -134,9 +134,9 @@ dependencies = [ [[package]] name = "crypto-common" -version = "0.2.0-rc.9" +version = "0.2.0-rc.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41b8986f836d4aeb30ccf4c9d3bd562fd716074cfd7fc4a2948359fbd21ed809" +checksum = "7d2bcc93d5cde6659e8649fc412894417ebc14dee54cfc6ee439c683a4a58342" dependencies = [ "getrandom", "hybrid-array", @@ -145,9 +145,9 @@ dependencies = [ [[package]] name = "ctutils" -version = "0.3.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c67c81499f542d1dd38c6a2a2fe825f4dd4bca5162965dd2eea0c8119873d3c" +checksum = "1005a6d4446f5120ef475ad3d2af2b30c49c2c9c6904258e3bb30219bebed5e4" dependencies = [ "cmov", ] @@ -183,9 +183,9 @@ dependencies = [ [[package]] name = "digest" -version = "0.11.0-rc.5" +version = "0.11.0-rc.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebf9423bafb058e4142194330c52273c343f8a5beb7176d052f0e73b17dd35b9" +checksum = "ca14c221bd9052fd2da7c34a2eeb5ae54732db28be47c35937be71793d675422" dependencies = [ "block-buffer", "const-oid", @@ -340,9 +340,9 @@ dependencies = [ [[package]] name = "password-hash" -version = "0.6.0-rc.8" +version = "0.6.0-rc.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f77af9403a6489b7b51f552693bd48d8e81a710c92d3d77648b203558578762d" +checksum = "80b7795f59c339f0458e0213b31e01f45de7f061bdfc52857386f457d94c2cb8" dependencies = [ "phc", "rand_core", @@ -350,9 +350,9 @@ dependencies = [ [[package]] name = "pbkdf2" -version = "0.13.0-rc.6" +version = "0.13.0-rc.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb9b101849c3ddab38905781f5aa7ae14ea06e87befaf0e7b003e5d3186250d" +checksum = "626220f48328b90cad8393e99e9ef80503970e6e86e77f32f7e42227972e7c2c" dependencies = [ "digest", "hmac", @@ -408,9 +408,9 @@ checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" [[package]] name = "rand_core" -version = "0.10.0-rc-3" +version = "0.10.0-rc-5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f66ee92bc15280519ef199a274fe0cafff4245d31bc39aaa31c011ad56cb1f05" +checksum = "05a06e03bd1f2ae861ab9e7498b6c64ed3dadb9ce175c0464a2522a5f23c0045" [[package]] name = "rustc_version" @@ -439,9 +439,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scrypt" -version = "0.12.0-rc.8" +version = "0.12.0-rc.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13ac15f5e54b9e1ba72ee618fc8ed94dd9dbe7b09c0eeaed80bced84100d8381" +checksum = "1f847dca682a96ca7c9a3683e155cc91f3acd57b6ff8fc19dcf4f5190bf732b3" dependencies = [ "cfg-if", "password-hash", diff --git a/aucpace/Cargo.toml b/aucpace/Cargo.toml index 5f7432d..59b6325 100644 --- a/aucpace/Cargo.toml +++ b/aucpace/Cargo.toml @@ -16,22 +16,22 @@ rust-version = "1.85" [dependencies] curve25519-dalek = { version = "5.0.0-pre.4", default-features = false, features = ["digest", "rand_core"] } -password-hash = { version = "0.6.0-rc.7", default-features = false, features = ["phc", "rand_core"] } -rand_core = { version = "0.10.0-rc-3", default-features = false } +password-hash = { version = "0.6.0-rc.8", default-features = false, features = ["phc", "rand_core"] } +rand_core = { version = "0.10.0-rc-5", default-features = false } subtle = { version = "2.4", default-features = false } # optional dependencies getrandom = { version = "0.4.0-rc.0", optional = true, features = ["sys_rng"] } serde = { version = "1.0.184", default-features = false, optional = true, features = ["derive"] } serde-byte-array = { version = "0.1", optional = true } -scrypt = { version = "0.12.0-rc.8", default-features = false, optional = true, features = ["phc"] } +scrypt = { version = "0.12.0-rc.9", default-features = false, optional = true, features = ["phc"] } sha2 = { version = "0.11.0-rc.3", default-features = false, optional = true } [dev-dependencies] curve25519-dalek = { version = "5.0.0-pre.4", features = ["digest", "rand_core"] } -password-hash = { version = "0.6.0-rc.7", features = ["rand_core"] } +password-hash = { version = "0.6.0-rc.8", features = ["rand_core"] } postcard = { version = "1", features = ["use-std"] } -scrypt = { version = "0.12.0-rc.8", features = ["phc"] } +scrypt = { version = "0.12.0-rc.9", features = ["phc"] } sha2 = "0.11.0-rc.3" [features] diff --git a/aucpace/examples/key_agreement.rs b/aucpace/examples/key_agreement.rs index 854644b..bc7cc3e 100644 --- a/aucpace/examples/key_agreement.rs +++ b/aucpace/examples/key_agreement.rs @@ -47,7 +47,7 @@ fn main() -> Result<()> { let mut database: SingleUserDatabase = Default::default(); let params = Params::RECOMMENDED; - let registration = base_client.register_alloc(USERNAME, PASSWORD, params, Scrypt)?; + let registration = base_client.register_alloc(USERNAME, PASSWORD, params, Scrypt::default())?; if let ClientMessage::Registration { username, salt, @@ -186,7 +186,7 @@ fn main() -> Result<()> { Params::new(log_n, r, p).unwrap() }; - client.generate_cpace_alloc(x_pub, &salt, params, Scrypt)? + client.generate_cpace_alloc(x_pub, &salt, params, Scrypt::default())? } else { panic!("Received invalid server message {:?}", server_message); }; diff --git a/aucpace/examples/key_agreement_no_std.rs b/aucpace/examples/key_agreement_no_std.rs index ef8bbfb..f6414dd 100644 --- a/aucpace/examples/key_agreement_no_std.rs +++ b/aucpace/examples/key_agreement_no_std.rs @@ -40,7 +40,8 @@ fn main() -> Result<()> { let start = Instant::now(); let params = Params::RECOMMENDED; - let registration = base_client.register::<&[u8], 100>(USERNAME, PASSWORD, params, Scrypt)?; + let registration = + base_client.register::<&[u8], 100>(USERNAME, PASSWORD, params, Scrypt::default())?; if let ClientMessage::Registration { username, salt, @@ -143,7 +144,7 @@ fn main() -> Result<()> { Params::new(log_n, r, p).unwrap() }; - client.generate_cpace::<&SaltString, 100>(x_pub, &salt, params, Scrypt)? + client.generate_cpace::<&SaltString, 100>(x_pub, &salt, params, Scrypt::default())? } else { panic!("Received invalid server message {:?}", server_message); }; diff --git a/aucpace/examples/key_agreement_partial_aug.rs b/aucpace/examples/key_agreement_partial_aug.rs index b2eb6fd..5093701 100644 --- a/aucpace/examples/key_agreement_partial_aug.rs +++ b/aucpace/examples/key_agreement_partial_aug.rs @@ -50,7 +50,7 @@ fn main() -> Result<()> { let mut database: SingleUserDatabase = Default::default(); let params = Params::RECOMMENDED; - let registration = base_client.register_alloc(USERNAME, PASSWORD, params, Scrypt)?; + let registration = base_client.register_alloc(USERNAME, PASSWORD, params, Scrypt::default())?; if let ClientMessage::Registration { username, salt, @@ -193,7 +193,7 @@ fn main() -> Result<()> { Params::new(log_n, r, p).unwrap() }; - client.generate_cpace_alloc(x_pub, &salt, params, Scrypt)? + client.generate_cpace_alloc(x_pub, &salt, params, Scrypt::default())? } else { panic!("Received invalid server message {:?}", server_message); }; diff --git a/aucpace/examples/key_agreement_strong.rs b/aucpace/examples/key_agreement_strong.rs index 5a06498..44a8b2a 100644 --- a/aucpace/examples/key_agreement_strong.rs +++ b/aucpace/examples/key_agreement_strong.rs @@ -48,7 +48,8 @@ fn main() -> Result<()> { let mut database: SingleUserDatabase = Default::default(); let params = Params::RECOMMENDED; - let registration = base_client.register_alloc_strong(USERNAME, PASSWORD, params, Scrypt)?; + let registration = + base_client.register_alloc_strong(USERNAME, PASSWORD, params, Scrypt::default())?; if let ClientMessage::StrongRegistration { username, secret_exponent, @@ -190,7 +191,7 @@ fn main() -> Result<()> { Params::new(log_n, r, p).unwrap() }; - client.generate_cpace_alloc(x_pub, blinded_salt, params, Scrypt)? + client.generate_cpace_alloc(x_pub, blinded_salt, params, Scrypt::default())? } else { panic!("Received invalid server message {:?}", server_message); }; diff --git a/aucpace/src/client.rs b/aucpace/src/client.rs index ce0502f..82ffa4d 100644 --- a/aucpace/src/client.rs +++ b/aucpace/src/client.rs @@ -1069,15 +1069,16 @@ mod tests { // they are used here to make the test run faster let params: Params = Default::default(); + let scrypt = Scrypt::default(); let no_std_res = hash_password::<&str, &str, &SaltString, Scrypt, 100>( username, password, &salt.into(), params, - &Scrypt, + &scrypt, ) .unwrap(); - let alloc_res = hash_password_alloc(username, password, salt, params, &Scrypt).unwrap(); + let alloc_res = hash_password_alloc(username, password, salt, params, &scrypt).unwrap(); assert_eq!(alloc_res, no_std_res); } @@ -1108,7 +1109,7 @@ mod tests { RistrettoPoint::identity(), &Salt::new(b"saltyboi").unwrap().into(), scrypt::Params::RECOMMENDED, - scrypt::Scrypt, + scrypt::Scrypt::default(), ); if let Err(e) = res { @@ -1134,7 +1135,7 @@ mod tests { RistrettoPoint::identity(), &Salt::new(b"saltyboi").unwrap().into(), scrypt::Params::RECOMMENDED, - scrypt::Scrypt, + scrypt::Scrypt::default(), ); if let Err(e) = res { @@ -1163,7 +1164,7 @@ mod tests { RistrettoPoint::identity(), RISTRETTO_BASEPOINT_POINT, scrypt::Params::RECOMMENDED, - scrypt::Scrypt, + scrypt::Scrypt::default(), ); if let Err(e) = res { @@ -1197,7 +1198,7 @@ mod tests { RistrettoPoint::identity(), RISTRETTO_BASEPOINT_POINT, scrypt::Params::RECOMMENDED, - scrypt::Scrypt, + scrypt::Scrypt::default(), ); if let Err(e) = res { @@ -1265,7 +1266,7 @@ mod tests { RISTRETTO_BASEPOINT_POINT, RistrettoPoint::identity(), scrypt::Params::RECOMMENDED, - scrypt::Scrypt, + scrypt::Scrypt::default(), ); if let Err(e) = res { diff --git a/aucpace/tests/test_key_agreement.rs b/aucpace/tests/test_key_agreement.rs index e70896e..85e638b 100644 --- a/aucpace/tests/test_key_agreement.rs +++ b/aucpace/tests/test_key_agreement.rs @@ -243,7 +243,7 @@ fn init() -> Result<(Client, Server, SingleUserDatabase)> { // register a user in the database let params = Params::RECOMMENDED; - let registration = base_client.register_alloc(USERNAME, PASSWORD, params, Scrypt)?; + let registration = base_client.register_alloc(USERNAME, PASSWORD, params, Scrypt::default())?; if let ClientMessage::Registration { username, salt, @@ -297,7 +297,7 @@ fn test_core( Params::new(log_n, r, p).unwrap() }; - client.generate_cpace_alloc(x_pub, &salt, params, Scrypt)? + client.generate_cpace_alloc(x_pub, &salt, params, Scrypt::default())? } else { panic!("Received invalid server message {:?}", server_message); }; diff --git a/aucpace/tests/test_key_agreement_partial_aug.rs b/aucpace/tests/test_key_agreement_partial_aug.rs index 1261234..c6b7dad 100644 --- a/aucpace/tests/test_key_agreement_partial_aug.rs +++ b/aucpace/tests/test_key_agreement_partial_aug.rs @@ -279,7 +279,7 @@ fn init() -> Result<(Client, Server, SingleUserDatabase)> { // register a user in the database let params = Params::RECOMMENDED; - let registration = base_client.register_alloc(USERNAME, PASSWORD, params, Scrypt)?; + let registration = base_client.register_alloc(USERNAME, PASSWORD, params, Scrypt::default())?; if let ClientMessage::Registration { username, salt, @@ -335,7 +335,7 @@ fn test_core( Params::new(log_n, r, p).unwrap() }; - client.generate_cpace_alloc(x_pub, &salt, params, Scrypt)? + client.generate_cpace_alloc(x_pub, &salt, params, Scrypt::default())? } else { panic!("Received invalid server message {:?}", server_message); }; diff --git a/aucpace/tests/test_key_agreement_strong.rs b/aucpace/tests/test_key_agreement_strong.rs index da27e6d..79b990f 100644 --- a/aucpace/tests/test_key_agreement_strong.rs +++ b/aucpace/tests/test_key_agreement_strong.rs @@ -244,7 +244,8 @@ fn init() -> Result<(Client, Server, SingleUserDatabase)> { // register a user in the database let params = Params::RECOMMENDED; - let registration = base_client.register_alloc_strong(USERNAME, PASSWORD, params, Scrypt)?; + let registration = + base_client.register_alloc_strong(USERNAME, PASSWORD, params, Scrypt::default())?; if let ClientMessage::StrongRegistration { username, secret_exponent, @@ -299,7 +300,7 @@ fn test_core( Params::new(log_n, r, p).unwrap() }; - client.generate_cpace_alloc(x_pub, blinded_salt, params, Scrypt)? + client.generate_cpace_alloc(x_pub, blinded_salt, params, Scrypt::default())? } else { panic!("Received invalid server message {:?}", server_message); }; diff --git a/aucpace/tests/test_key_agreement_strong_partial_aug.rs b/aucpace/tests/test_key_agreement_strong_partial_aug.rs index 5426fee..11ccead 100644 --- a/aucpace/tests/test_key_agreement_strong_partial_aug.rs +++ b/aucpace/tests/test_key_agreement_strong_partial_aug.rs @@ -281,7 +281,8 @@ fn init() -> Result<(Client, Server, SingleUserDatabase)> { // register a user in the database let params = Params::RECOMMENDED; - let registration = base_client.register_alloc_strong(USERNAME, PASSWORD, params, Scrypt)?; + let registration = + base_client.register_alloc_strong(USERNAME, PASSWORD, params, Scrypt::default())?; if let ClientMessage::StrongRegistration { username, secret_exponent, @@ -338,7 +339,7 @@ fn test_core( Params::new(log_n, r, p).unwrap() }; - client.generate_cpace_alloc(x_pub, blinded_salt, params, Scrypt)? + client.generate_cpace_alloc(x_pub, blinded_salt, params, Scrypt::default())? } else { panic!("Received invalid server message {:?}", server_message); }; diff --git a/spake2/Cargo.toml b/spake2/Cargo.toml index f007bb7..3b0c902 100644 --- a/spake2/Cargo.toml +++ b/spake2/Cargo.toml @@ -15,8 +15,8 @@ edition = "2024" rust-version = "1.85" [dependencies] -curve25519-dalek = { version = "5.0.0-pre.3", default-features = false, features = ["rand_core"] } -rand_core = { version = "0.10.0-rc-3", default-features = false } +curve25519-dalek = { version = "5.0.0-pre.4", default-features = false, features = ["rand_core"] } +rand_core = { version = "0.10.0-rc-5", default-features = false } sha2 = { version = "0.11.0-rc.3", default-features = false } hkdf = { version = "0.13.0-rc.3", default-features = false } diff --git a/spake2/src/lib.rs b/spake2/src/lib.rs index 34d81cb..e44c6f7 100644 --- a/spake2/src/lib.rs +++ b/spake2/src/lib.rs @@ -323,7 +323,7 @@ impl Spake2 { #[cfg(feature = "getrandom")] #[must_use] pub fn start_a(password: &Password, id_a: &Identity, id_b: &Identity) -> (Self, Vec) { - Self::start_a_with_rng(password, id_a, id_b, SysRng.unwrap_mut()) + Self::start_a_with_rng(password, id_a, id_b, &mut SysRng.unwrap_err()) } /// Start with identity `idB`. @@ -332,7 +332,7 @@ impl Spake2 { #[cfg(feature = "getrandom")] #[must_use] pub fn start_b(password: &Password, id_a: &Identity, id_b: &Identity) -> (Self, Vec) { - Self::start_b_with_rng(password, id_a, id_b, SysRng.unwrap_mut()) + Self::start_b_with_rng(password, id_a, id_b, &mut SysRng.unwrap_err()) } /// Start with symmetric identity. @@ -341,7 +341,7 @@ impl Spake2 { #[cfg(feature = "getrandom")] #[must_use] pub fn start_symmetric(password: &Password, id_s: &Identity) -> (Self, Vec) { - Self::start_symmetric_with_rng(password, id_s, SysRng.unwrap_mut()) + Self::start_symmetric_with_rng(password, id_s, &mut SysRng.unwrap_err()) } /// Start with identity `idA` and the provided cryptographically secure RNG. diff --git a/srp/Cargo.toml b/srp/Cargo.toml index daeef15..f054845 100644 --- a/srp/Cargo.toml +++ b/srp/Cargo.toml @@ -17,9 +17,9 @@ edition = "2024" rust-version = "1.85" [dependencies] -bigint = { package = "crypto-bigint", version = "0.7.0-rc.18", features = ["alloc"] } -common = { package = "crypto-common", version = "0.2.0-rc.9" } -digest = "0.11.0-rc.5" +bigint = { package = "crypto-bigint", version = "0.7.0-rc.21", features = ["alloc"] } +common = { package = "crypto-common", version = "0.2.0-rc.11" } +digest = "0.11.0-rc.7" subtle = { version = "2.4", default-features = false } [dev-dependencies]