pub struct EncryptedFileStorage { /* private fields */ }Expand description
Encrypted file storage for headless Linux environments.
Stores keys in an encrypted JSON file at ~/.auths/keys.enc.
Uses Argon2id for password-based key derivation and XChaCha20-Poly1305 for encryption.
Implementations§
Source§impl EncryptedFileStorage
impl EncryptedFileStorage
Sourcepub fn new(home: &Path) -> Result<Self, AgentError>
pub fn new(home: &Path) -> Result<Self, AgentError>
Create a new EncryptedFileStorage with default path (<home>/keys.enc).
Args:
home- The Auths home directory (e.g., fromauths_home_with_config).
Usage:
ⓘ
let storage = EncryptedFileStorage::new(home_path)?;Sourcepub fn with_path(path: PathBuf) -> Result<Self, AgentError>
pub fn with_path(path: PathBuf) -> Result<Self, AgentError>
Create a new EncryptedFileStorage with a custom path
Sourcepub fn set_password(&self, password: Zeroizing<String>)
pub fn set_password(&self, password: Zeroizing<String>)
Set the password for this session.
Takes Zeroizing<String> to enforce that callers treat the passphrase
as sensitive material from the point of construction.
Trait Implementations§
Source§impl KeyStorage for EncryptedFileStorage
impl KeyStorage for EncryptedFileStorage
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.
Auto Trait Implementations§
impl !Freeze for EncryptedFileStorage
impl RefUnwindSafe for EncryptedFileStorage
impl Send for EncryptedFileStorage
impl Sync for EncryptedFileStorage
impl Unpin for EncryptedFileStorage
impl UnsafeUnpin for EncryptedFileStorage
impl UnwindSafe for EncryptedFileStorage
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more