diff options
Diffstat (limited to 'lockchain-core/src/users/keystore.rs')
-rw-r--r-- | lockchain-core/src/users/keystore.rs | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/lockchain-core/src/users/keystore.rs b/lockchain-core/src/users/keystore.rs deleted file mode 100644 index 7da77ec..0000000 --- a/lockchain-core/src/users/keystore.rs +++ /dev/null @@ -1,70 +0,0 @@ -//! A keystore is a specific implementation of a metadata store -//! -//! At it's core it provides three simple functions -//! -//! - Adding keys for a user -//! - Removing keys -//! - Retrieving keys -//! -//! **This module is meant to be used by lockchain-library implementations** - -#![deprecated(since="0.10.0", note="Use the `userstore::UserStore` structure instead")] - -use traits::{AutoEncoder, Base64AutoEncoder}; -use {crypto::Key, meta::MetaDomain}; - -use std::collections::HashMap; - -/// A utility wrapper around a Username -> Key collection -#[derive(Serialize, Deserialize)] -pub struct KeyStore { - keys: HashMap<String, Key>, -} - -impl KeyStore { - pub fn add_key(&mut self, user: &str, key: Key) { - self.keys.insert(user.into(), key); - } - - pub fn revoke_key(&mut self, user: &str) { - self.keys.remove(user); - } -} - -impl AutoEncoder for KeyStore {} - -impl From<MetaDomain> for KeyStore { - fn from(d: MetaDomain) -> Self { - Self { - keys: d - .all() - .iter() - .map(|(k, v)| { - ( - k.clone(), - match v { - ::Payload::Text(s) => Key::decode(&String::from_base64(s)).unwrap(), - _ => unreachable!(), - }, - ) - }) - .collect(), - } - } -} - -impl From<KeyStore> for MetaDomain { - fn from(ks: KeyStore) -> Self { - MetaDomain::new("keystore").fill( - ks.keys - .iter() - .map(|(name, key)| { - ( - name.clone(), - ::Payload::Text(key.encode().unwrap().to_base64()), - ) - }) - .collect(), - ) - } -} |