Skip to main content

KeyStorage

Trait KeyStorage 

Source
pub trait KeyStorage: Send + Sync {
    // Required methods
    fn store_key(
        &self,
        alias: &KeyAlias,
        identity_did: &IdentityDID,
        encrypted_key_data: &[u8],
    ) -> Result<(), AgentError>;
    fn load_key(
        &self,
        alias: &KeyAlias,
    ) -> Result<(IdentityDID, Vec<u8>), AgentError>;
    fn delete_key(&self, alias: &KeyAlias) -> Result<(), AgentError>;
    fn list_aliases(&self) -> Result<Vec<KeyAlias>, AgentError>;
    fn list_aliases_for_identity(
        &self,
        identity_did: &IdentityDID,
    ) -> Result<Vec<KeyAlias>, AgentError>;
    fn get_identity_for_alias(
        &self,
        alias: &KeyAlias,
    ) -> Result<IdentityDID, AgentError>;
    fn backend_name(&self) -> &'static str;
}
Expand description

Platform-agnostic interface for storing and loading private keys securely.

All implementors must be Send + Sync for thread-safe access.

Required Methods§

Source

fn store_key( &self, alias: &KeyAlias, identity_did: &IdentityDID, encrypted_key_data: &[u8], ) -> Result<(), AgentError>

Stores encrypted key data associated with an alias AND an identity DID.

Source

fn load_key( &self, alias: &KeyAlias, ) -> Result<(IdentityDID, Vec<u8>), AgentError>

Loads the encrypted key data AND the associated identity DID for a given alias.

Source

fn delete_key(&self, alias: &KeyAlias) -> Result<(), AgentError>

Deletes a key by its alias.

Source

fn list_aliases(&self) -> Result<Vec<KeyAlias>, AgentError>

Lists all aliases stored by this backend for the specific service.

Source

fn list_aliases_for_identity( &self, identity_did: &IdentityDID, ) -> Result<Vec<KeyAlias>, AgentError>

Lists aliases associated ONLY with the given identity DID.

Source

fn get_identity_for_alias( &self, alias: &KeyAlias, ) -> Result<IdentityDID, AgentError>

Retrieves the identity DID associated with a given alias.

Source

fn backend_name(&self) -> &'static str

Returns the name of the storage backend.

Trait Implementations§

Source§

impl KeyStorage for Box<dyn KeyStorage + Send + Sync>

Source§

fn store_key( &self, alias: &KeyAlias, identity_did: &IdentityDID, encrypted_key_data: &[u8], ) -> Result<(), AgentError>

Stores encrypted key data associated with an alias AND an identity DID.
Source§

fn load_key( &self, alias: &KeyAlias, ) -> Result<(IdentityDID, Vec<u8>), AgentError>

Loads the encrypted key data AND the associated identity DID for a given alias.
Source§

fn delete_key(&self, alias: &KeyAlias) -> Result<(), AgentError>

Deletes a key by its alias.
Source§

fn list_aliases(&self) -> Result<Vec<KeyAlias>, AgentError>

Lists all aliases stored by this backend for the specific service.
Source§

fn list_aliases_for_identity( &self, identity_did: &IdentityDID, ) -> Result<Vec<KeyAlias>, AgentError>

Lists aliases associated ONLY with the given identity DID.
Source§

fn get_identity_for_alias( &self, alias: &KeyAlias, ) -> Result<IdentityDID, AgentError>

Retrieves the identity DID associated with a given alias.
Source§

fn backend_name(&self) -> &'static str

Returns the name of the storage backend.

Implementations on Foreign Types§

Source§

impl KeyStorage for Box<dyn KeyStorage + Send + Sync>

Source§

fn store_key( &self, alias: &KeyAlias, identity_did: &IdentityDID, encrypted_key_data: &[u8], ) -> Result<(), AgentError>

Source§

fn load_key( &self, alias: &KeyAlias, ) -> Result<(IdentityDID, Vec<u8>), AgentError>

Source§

fn delete_key(&self, alias: &KeyAlias) -> Result<(), AgentError>

Source§

fn list_aliases(&self) -> Result<Vec<KeyAlias>, AgentError>

Source§

fn list_aliases_for_identity( &self, identity_did: &IdentityDID, ) -> Result<Vec<KeyAlias>, AgentError>

Source§

fn get_identity_for_alias( &self, alias: &KeyAlias, ) -> Result<IdentityDID, AgentError>

Source§

fn backend_name(&self) -> &'static str

Source§

impl KeyStorage for Arc<dyn KeyStorage + Send + Sync>

Source§

fn store_key( &self, alias: &KeyAlias, identity_did: &IdentityDID, encrypted_key_data: &[u8], ) -> Result<(), AgentError>

Source§

fn load_key( &self, alias: &KeyAlias, ) -> Result<(IdentityDID, Vec<u8>), AgentError>

Source§

fn delete_key(&self, alias: &KeyAlias) -> Result<(), AgentError>

Source§

fn list_aliases(&self) -> Result<Vec<KeyAlias>, AgentError>

Source§

fn list_aliases_for_identity( &self, identity_did: &IdentityDID, ) -> Result<Vec<KeyAlias>, AgentError>

Source§

fn get_identity_for_alias( &self, alias: &KeyAlias, ) -> Result<IdentityDID, AgentError>

Source§

fn backend_name(&self) -> &'static str

Implementors§