KeyStore

Trait KeyStore 

Source
pub trait KeyStore: Send + Sync {
    // Required methods
    fn store(&mut self, key: VersionedKey) -> Result<()>;
    fn retrieve(&self, id: &KeyId) -> Result<VersionedKey>;
    fn delete(&mut self, id: &KeyId) -> Result<()>;
    fn list(&self) -> Result<Vec<KeyId>>;
    fn update_metadata(
        &mut self,
        id: &KeyId,
        metadata: KeyMetadata,
    ) -> Result<()>;
    fn find_by_state(&self, state: KeyState) -> Result<Vec<KeyId>>;
    fn rotate_key(&mut self, id: &KeyId) -> Result<VersionedKey>;
    fn get_key_versions(&self, id: &KeyId) -> Result<Vec<VersionedKey>>;
    fn get_latest_key(&self, id: &KeyId) -> Result<VersionedKey>;
}
Expand description

Trait for key storage backends

Required Methods§

Source

fn store(&mut self, key: VersionedKey) -> Result<()>

Store a versioned key

Source

fn retrieve(&self, id: &KeyId) -> Result<VersionedKey>

Retrieve a key by ID

Source

fn delete(&mut self, id: &KeyId) -> Result<()>

Delete a key

Source

fn list(&self) -> Result<Vec<KeyId>>

List all kety IDs

Source

fn update_metadata(&mut self, id: &KeyId, metadata: KeyMetadata) -> Result<()>

Update key metadata

Source

fn find_by_state(&self, state: KeyState) -> Result<Vec<KeyId>>

Find keys by state

Source

fn rotate_key(&mut self, id: &KeyId) -> Result<VersionedKey>

Rotate a key to a new version

Source

fn get_key_versions(&self, id: &KeyId) -> Result<Vec<VersionedKey>>

Get all verions of a key (sorted by version number)

Source

fn get_latest_key(&self, id: &KeyId) -> Result<VersionedKey>

Get the latest active version of a key

Implementors§