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§
Sourcefn store(&mut self, key: VersionedKey) -> Result<()>
fn store(&mut self, key: VersionedKey) -> Result<()>
Store a versioned key
Sourcefn retrieve(&self, id: &KeyId) -> Result<VersionedKey>
fn retrieve(&self, id: &KeyId) -> Result<VersionedKey>
Retrieve a key by ID
Sourcefn update_metadata(&mut self, id: &KeyId, metadata: KeyMetadata) -> Result<()>
fn update_metadata(&mut self, id: &KeyId, metadata: KeyMetadata) -> Result<()>
Update key metadata
Sourcefn rotate_key(&mut self, id: &KeyId) -> Result<VersionedKey>
fn rotate_key(&mut self, id: &KeyId) -> Result<VersionedKey>
Rotate a key to a new version
Sourcefn get_key_versions(&self, id: &KeyId) -> Result<Vec<VersionedKey>>
fn get_key_versions(&self, id: &KeyId) -> Result<Vec<VersionedKey>>
Get all verions of a key (sorted by version number)
Sourcefn get_latest_key(&self, id: &KeyId) -> Result<VersionedKey>
fn get_latest_key(&self, id: &KeyId) -> Result<VersionedKey>
Get the latest active version of a key