scrypto decrypt fix
This commit is contained in:
parent
e604c97a43
commit
4061799e90
@ -134,6 +134,28 @@ mod tests {
|
|||||||
assert!(key.is_some());
|
assert!(key.is_some());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn imports_as_scrypt_keys() {
|
||||||
|
use util::keys::directory::{KeyDirectory, KeyFileKdf};
|
||||||
|
let temp = ::devtools::RandomTempPath::create_dir();
|
||||||
|
{
|
||||||
|
let mut secret_store = SecretStore::new_in(temp.as_path());
|
||||||
|
import_geth_keys(&mut secret_store, Path::new("res/geth_keystore")).unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
|
let key_directory = KeyDirectory::new(&temp.as_path());
|
||||||
|
let key_file = key_directory.get(&H128::from_str("62a0ad73556d496a8e1c0783d30d3ace").unwrap()).unwrap();
|
||||||
|
|
||||||
|
match key_file.crypto.kdf {
|
||||||
|
KeyFileKdf::Scrypt(scrypt_params) => {
|
||||||
|
assert_eq!(262144, scrypt_params.n);
|
||||||
|
assert_eq!(8, scrypt_params.r);
|
||||||
|
assert_eq!(1, scrypt_params.p);
|
||||||
|
},
|
||||||
|
_ => { panic!("expected kdf params of crypto to be of scrypt type" ); }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn can_decrypt_with_imported() {
|
fn can_decrypt_with_imported() {
|
||||||
use util::keys::store::EncryptedHashMap;
|
use util::keys::store::EncryptedHashMap;
|
||||||
@ -145,6 +167,6 @@ mod tests {
|
|||||||
|
|
||||||
let val = secret_store.get::<Bytes>(&H128::from_str("62a0ad73556d496a8e1c0783d30d3ace").unwrap(), "123");
|
let val = secret_store.get::<Bytes>(&H128::from_str("62a0ad73556d496a8e1c0783d30d3ace").unwrap(), "123");
|
||||||
assert!(val.is_ok());
|
assert!(val.is_ok());
|
||||||
assert_eq!(vec![0u8, 10], val.unwrap());
|
assert_eq!(32, val.unwrap().len());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -125,7 +125,7 @@ fn derive_key(password: &str, salt: &H256) -> (Bytes, Bytes) {
|
|||||||
|
|
||||||
fn derive_key_scrypt(password: &str, salt: &H256, n: u32, p: u32, r: u32) -> (Bytes, Bytes) {
|
fn derive_key_scrypt(password: &str, salt: &H256, n: u32, p: u32, r: u32) -> (Bytes, Bytes) {
|
||||||
let mut derived_key = vec![0u8; KEY_LENGTH_USIZE];
|
let mut derived_key = vec![0u8; KEY_LENGTH_USIZE];
|
||||||
let scrypt_params = ScryptParams::new(n as u8, r, p);
|
let scrypt_params = ScryptParams::new(n.trailing_zeros() as u8, r, p);
|
||||||
scrypt(password.as_bytes(), &salt.as_slice(), &scrypt_params, &mut derived_key);
|
scrypt(password.as_bytes(), &salt.as_slice(), &scrypt_params, &mut derived_key);
|
||||||
let derived_right_bits = &derived_key[0..KEY_LENGTH_AES_USIZE];
|
let derived_right_bits = &derived_key[0..KEY_LENGTH_AES_USIZE];
|
||||||
let derived_left_bits = &derived_key[KEY_LENGTH_AES_USIZE..KEY_LENGTH_USIZE];
|
let derived_left_bits = &derived_key[KEY_LENGTH_AES_USIZE..KEY_LENGTH_USIZE];
|
||||||
|
Loading…
Reference in New Issue
Block a user