From 249149d4cef9f668eee041647bd349b29999e85a Mon Sep 17 00:00:00 2001 From: Gabriela Moldovan Date: Thu, 27 Jul 2023 11:13:24 +0100 Subject: [PATCH] keymgr: Make the return value of generate() indicate if a new key was created. --- crates/tor-keymgr/src/mgr.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/crates/tor-keymgr/src/mgr.rs b/crates/tor-keymgr/src/mgr.rs index 87c1ea5c4..3c10de3cc 100644 --- a/crates/tor-keymgr/src/mgr.rs +++ b/crates/tor-keymgr/src/mgr.rs @@ -50,21 +50,23 @@ impl KeyMgr { /// /// If the key already exists in the specified key store, the `overwrite` flag is used to /// decide whether to overwrite it with a newly generated key. + /// + /// Returns `Ok(Some(())` if a new key was created, and `Ok(None)` otherwise. pub fn generate( &self, key_spec: &dyn KeySpecifier, selector: KeystoreSelector, rng: &mut dyn KeygenRng, overwrite: bool, - ) -> Result<()> { + ) -> Result> { let store = self.select_keystore(&selector)?; let key_type = K::Key::key_type(); if overwrite || !store.contains(key_spec, key_type)? { let key = K::Key::generate(rng)?; - store.insert(&key, key_spec, key_type) + store.insert(&key, key_spec, key_type).map(Some) } else { - Ok(()) + Ok(None) } }