From f49c0b066a8828124eb3a811909b02550bb90d0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Drwi=C4=99ga?= Date: Tue, 30 May 2023 22:23:58 +0200 Subject: [PATCH] Update deps. (#102) * Update deps. * Fix code. * fmt --- Cargo.toml | 2 +- ethsign-crypto/Cargo.toml | 7 ++++--- ethsign-crypto/src/aes.rs | 7 +++---- ethsign-crypto/src/lib.rs | 2 +- ethsign-crypto/src/scrypt.rs | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 3733f78..01619dc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,7 +13,7 @@ version = "0.9.0" zeroize = "1.0.0" rand = "0.8.0" rustc-hex = "2.0.1" -secp256k1 = { version = "0.26", optional = true, features = ["recovery"] } +secp256k1 = { version = "0.27", optional = true, features = ["recovery"] } serde = { version = "1.0", features = ["derive"]} # Libraries for for pure-rust crypto diff --git a/ethsign-crypto/Cargo.toml b/ethsign-crypto/Cargo.toml index 83ba061..4ea8c49 100644 --- a/ethsign-crypto/Cargo.toml +++ b/ethsign-crypto/Cargo.toml @@ -10,11 +10,12 @@ description = "Pure Rust drop-in replacement for the `parity-crypto` crate" license = "GPL-3.0" [dependencies] -pbkdf2 = { version = "0.11.0", features = [ "parallel" ], default-features = false } -scrypt = "0.10" +pbkdf2 = { version = "0.12.1", features = [ "parallel" ], default-features = false } +scrypt = "0.11" sha2 = "0.10.1" hmac = "0.12.0" -aes = { version = "0.7.5", features = [ "ctr" ], default-features = false } +aes = { version = "0.8.0", default-features = false } +ctr = { version = "0.9.2" } tiny-keccak = { version = "2.0.0", features = [ "keccak" ] } [dev-dependencies] diff --git a/ethsign-crypto/src/aes.rs b/ethsign-crypto/src/aes.rs index d722bb3..36a1d4c 100644 --- a/ethsign-crypto/src/aes.rs +++ b/ethsign-crypto/src/aes.rs @@ -1,8 +1,8 @@ //! AES symmetric encryption use aes::{ - cipher::{generic_array::GenericArray, FromBlockCipher, NewBlockCipher, StreamCipher}, - Aes128, Aes128Ctr, + cipher::{generic_array::GenericArray, KeyIvInit, StreamCipher}, + Aes128, }; use std::fmt; @@ -44,8 +44,7 @@ pub fn encrypt_128_ctr(k: &[u8], iv: &[u8], plain: &[u8], dest: &mut [u8]) -> Re dest.copy_from_slice(plain); - let cipher = Aes128::new(&key); - let mut cipher_ctr = Aes128Ctr::from_block_cipher(cipher, &nonce); + let mut cipher_ctr = ctr::Ctr128BE::::new(&key, &nonce); cipher_ctr.apply_keystream(dest); Ok(()) diff --git a/ethsign-crypto/src/lib.rs b/ethsign-crypto/src/lib.rs index c99b581..ab5066a 100644 --- a/ethsign-crypto/src/lib.rs +++ b/ethsign-crypto/src/lib.rs @@ -38,7 +38,7 @@ impl> Keccak256<[u8; 32]> for T { pub fn derive_key_iterations(password: &[u8], salt: &[u8], c: u32) -> (Vec, Vec) { let mut derived_key = [0u8; KEY_LENGTH]; - pbkdf2::>(password, salt, c, &mut derived_key); + pbkdf2::>(password, salt, c, &mut derived_key).expect("Length is valid; qed"); let derived_right_bits = &derived_key[0..KEY_LENGTH_AES]; let derived_left_bits = &derived_key[KEY_LENGTH_AES..KEY_LENGTH]; (derived_right_bits.to_vec(), derived_left_bits.to_vec()) diff --git a/ethsign-crypto/src/scrypt.rs b/ethsign-crypto/src/scrypt.rs index 2f588c9..f273de8 100644 --- a/ethsign-crypto/src/scrypt.rs +++ b/ethsign-crypto/src/scrypt.rs @@ -7,7 +7,7 @@ use super::{KEY_LENGTH, KEY_LENGTH_AES}; pub fn derive_key(pass: &[u8], salt: &[u8], n: u32, p: u32, r: u32) -> Result<(Vec, Vec), ScryptError> { let log_n = (32 - n.leading_zeros() - 1) as u8; let mut derived_key = vec![0u8; KEY_LENGTH]; - let scrypt_params = scrypt::Params::new(log_n, r, p)?; + let scrypt_params = scrypt::Params::new(log_n, r, p, KEY_LENGTH)?; scrypt::scrypt(pass, salt, &scrypt_params, &mut derived_key).expect("derived_key is long enough; qed"); let derived_right_bits = &derived_key[0..KEY_LENGTH_AES]; let derived_left_bits = &derived_key[KEY_LENGTH_AES..KEY_LENGTH];