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§
Sourcefn store_key(
&self,
alias: &KeyAlias,
identity_did: &IdentityDID,
encrypted_key_data: &[u8],
) -> Result<(), AgentError>
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.
Sourcefn load_key(
&self,
alias: &KeyAlias,
) -> Result<(IdentityDID, Vec<u8>), AgentError>
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.
Sourcefn delete_key(&self, alias: &KeyAlias) -> Result<(), AgentError>
fn delete_key(&self, alias: &KeyAlias) -> Result<(), AgentError>
Deletes a key by its alias.
Sourcefn list_aliases(&self) -> Result<Vec<KeyAlias>, AgentError>
fn list_aliases(&self) -> Result<Vec<KeyAlias>, AgentError>
Lists all aliases stored by this backend for the specific service.
Sourcefn list_aliases_for_identity(
&self,
identity_did: &IdentityDID,
) -> Result<Vec<KeyAlias>, AgentError>
fn list_aliases_for_identity( &self, identity_did: &IdentityDID, ) -> Result<Vec<KeyAlias>, AgentError>
Lists aliases associated ONLY with the given identity DID.
Sourcefn get_identity_for_alias(
&self,
alias: &KeyAlias,
) -> Result<IdentityDID, AgentError>
fn get_identity_for_alias( &self, alias: &KeyAlias, ) -> Result<IdentityDID, AgentError>
Retrieves the identity DID associated with a given alias.
Sourcefn backend_name(&self) -> &'static str
fn backend_name(&self) -> &'static str
Returns the name of the storage backend.
Trait Implementations§
Source§impl KeyStorage for Box<dyn KeyStorage + Send + Sync>
impl KeyStorage for Box<dyn KeyStorage + Send + Sync>
Source§fn store_key(
&self,
alias: &KeyAlias,
identity_did: &IdentityDID,
encrypted_key_data: &[u8],
) -> Result<(), AgentError>
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>
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>
fn delete_key(&self, alias: &KeyAlias) -> Result<(), AgentError>
Deletes a key by its alias.
Source§fn list_aliases(&self) -> Result<Vec<KeyAlias>, AgentError>
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>
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>
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
fn backend_name(&self) -> &'static str
Returns the name of the storage backend.