pub trait KeyStore {
// Required methods
fn save_seed(&self, seed: &[u8; 32]) -> Result<(), KeyStoreError>;
fn load_seed(&self) -> Result<[u8; 32], KeyStoreError>;
fn delete_seed(&self) -> Result<(), KeyStoreError>;
}Expand description
Secure storage for a 32-byte identity seed. Implement this directly for
a backend other than KeyringStore (a hardware security module, a
different vault) — this is the override point “per target platform”
hangs off, not a platform enum this crate switches on internally.
Required Methods§
Sourcefn save_seed(&self, seed: &[u8; 32]) -> Result<(), KeyStoreError>
fn save_seed(&self, seed: &[u8; 32]) -> Result<(), KeyStoreError>
Persist seed, overwriting any value already stored under this
store’s identity.
Sourcefn load_seed(&self) -> Result<[u8; 32], KeyStoreError>
fn load_seed(&self) -> Result<[u8; 32], KeyStoreError>
Retrieve a previously-save_seedd seed.
KeyStoreError::NotFound if nothing has been stored yet.
Sourcefn delete_seed(&self) -> Result<(), KeyStoreError>
fn delete_seed(&self) -> Result<(), KeyStoreError>
Remove a previously-stored seed, if any. Not required before a
save_seed (which overwrites), only for
deliberately forgetting an identity.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementors§
impl KeyStore for KeyringStore
impl KeyStore for LinuxKeyutilsStore
Available on Linux only.