mirror of
https://github.com/fluencelabs/rust-libp2p
synced 2025-05-12 19:07:14 +00:00
Add missing zeroize() call for secp256k1::SecretKey::from_bytes. (#1040)
* Add missing zeroize() call for secp256k1. * Add a test.
This commit is contained in:
parent
dfc425ea54
commit
8f77e9c45e
@ -96,6 +96,7 @@ impl SecretKey {
|
|||||||
let sk_bytes = sk.as_mut();
|
let sk_bytes = sk.as_mut();
|
||||||
let secret = secp::key::SecretKey::from_slice(&*sk_bytes)
|
let secret = secp::key::SecretKey::from_slice(&*sk_bytes)
|
||||||
.map_err(|e| DecodingError::new("Secp256k1 secret key", e))?;
|
.map_err(|e| DecodingError::new("Secp256k1 secret key", e))?;
|
||||||
|
sk_bytes.zeroize();
|
||||||
Ok(SecretKey(secret))
|
Ok(SecretKey(secret))
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -156,3 +157,18 @@ impl PublicKey {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn secp256k1_secret_from_bytes() {
|
||||||
|
let sk1 = SecretKey::generate();
|
||||||
|
let mut sk_bytes = [0; 32];
|
||||||
|
sk_bytes.copy_from_slice(sk1.as_ref());
|
||||||
|
let sk2 = SecretKey::from_bytes(&mut sk_bytes).unwrap();
|
||||||
|
assert_eq!(sk1.as_ref(), sk2.as_ref());
|
||||||
|
assert_eq!(sk_bytes, [0; 32]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user