Trait tor_keymgr::keystore::Keystore

source ·
pub trait Keystore: Send + Sync + 'static {
    // Required methods
    fn id(&self) -> &KeystoreId;
    fn contains(
        &self,
        key_spec: &dyn KeySpecifier,
        key_type: &KeyType
    ) -> Result<bool>;
    fn get(
        &self,
        key_spec: &dyn KeySpecifier,
        key_type: &KeyType
    ) -> Result<Option<ErasedKey>>;
    fn insert(
        &self,
        key: &dyn EncodableKey,
        key_spec: &dyn KeySpecifier,
        key_type: &KeyType
    ) -> Result<()>;
    fn remove(
        &self,
        key_spec: &dyn KeySpecifier,
        key_type: &KeyType
    ) -> Result<Option<()>>;
    fn list(&self) -> Result<Vec<(KeyPath, KeyType)>>;
}
Available on crate feature keymgr only.
Expand description

A generic key store.

Required Methods§

source

fn id(&self) -> &KeystoreId

An identifier for this key store instance.

This identifier is used by some KeyMgr APIs to identify a specific key store.

source

fn contains( &self, key_spec: &dyn KeySpecifier, key_type: &KeyType ) -> Result<bool>

Check if the key identified by key_spec exists in this key store.

source

fn get( &self, key_spec: &dyn KeySpecifier, key_type: &KeyType ) -> Result<Option<ErasedKey>>

Retrieve the key identified by key_spec.

Returns Ok(Some(key)) if the key was successfully retrieved. Returns Ok(None) if the key does not exist in this key store.

source

fn insert( &self, key: &dyn EncodableKey, key_spec: &dyn KeySpecifier, key_type: &KeyType ) -> Result<()>

Write key to the key store.

source

fn remove( &self, key_spec: &dyn KeySpecifier, key_type: &KeyType ) -> Result<Option<()>>

Remove the specified key.

A return value of Ok(None) indicates the key doesn’t exist in this key store, whereas Ok(Some(()) means the key was successfully removed.

Returns Err if an error occurred while trying to remove the key.

source

fn list(&self) -> Result<Vec<(KeyPath, KeyType)>>

List all the keys in this keystore.

Implementors§