keymgr: Make Keystore::generate() return a Result.

This commit is contained in:
Gabriela Moldovan 2023-07-27 11:03:06 +01:00
parent 89dc3a162a
commit 44f6d1c827
No known key found for this signature in database
GPG Key ID: 3946E0ADE72BAC99
2 changed files with 8 additions and 8 deletions

View File

@ -83,7 +83,7 @@ pub trait EncodableKey: Downcast {
Self: Sized;
/// Generate a new key of this type.
fn generate(rng: &mut dyn KeygenRng) -> Self
fn generate(rng: &mut dyn KeygenRng) -> Result<Self>
where
Self: Sized;
@ -101,11 +101,11 @@ impl EncodableKey for curve25519::StaticSecret {
KeyType::X25519StaticSecret
}
fn generate(rng: &mut dyn KeygenRng) -> Self
fn generate(rng: &mut dyn KeygenRng) -> Result<Self>
where
Self: Sized,
{
curve25519::StaticSecret::new(rng)
Ok(curve25519::StaticSecret::new(rng))
}
fn to_bytes(&self) -> Result<Zeroizing<Vec<u8>>> {
@ -121,13 +121,13 @@ impl EncodableKey for ed25519::Keypair {
KeyType::Ed25519Keypair
}
fn generate(rng: &mut dyn KeygenRng) -> Self
fn generate(rng: &mut dyn KeygenRng) -> Result<Self>
where
Self: Sized,
{
use tor_llcrypto::util::rand_compat::RngCompatExt;
ed25519::Keypair::generate(&mut rng.rng_compat())
Ok(ed25519::Keypair::generate(&mut rng.rng_compat()))
}
fn to_bytes(&self) -> Result<Zeroizing<Vec<u8>>> {

View File

@ -61,7 +61,7 @@ impl KeyMgr {
let key_type = K::Key::key_type();
if overwrite || !store.contains(key_spec, key_type)? {
let key = K::Key::generate(rng);
let key = K::Key::generate(rng)?;
store.insert(&key, key_spec, key_type)
} else {
Ok(())
@ -189,11 +189,11 @@ mod tests {
KeyType::Ed25519Keypair
}
fn generate(_rng: &mut dyn KeygenRng) -> Self
fn generate(_rng: &mut dyn KeygenRng) -> Result<Self>
where
Self: Sized,
{
"generated_test_key".into()
Ok("generated_test_key".into())
}
fn to_bytes(&self) -> Result<zeroize::Zeroizing<Vec<u8>>> {