pub trait KeyStoreBackend: Backend {
// Required methods
fn generate_key(
&mut self,
spec: KeySpec,
) -> Result<KeyMetadata, BackendError>;
fn import_private_key(
&mut self,
spec: KeySpec,
key_bytes: &[u8],
) -> Result<KeyMetadata, BackendError>;
fn export_public_key(
&self,
key_id: &KeyId,
) -> Result<PublicKeyDer, BackendError>;
fn list_keys(&self) -> Result<Vec<KeyMetadata>, BackendError>;
fn delete_key(&mut self, key_id: &KeyId) -> Result<(), BackendError>;
}Expand description
Key generation and storage operations.
Backends implementing this trait can generate, import, and manage cryptographic keys.
Required Methods§
Sourcefn generate_key(&mut self, spec: KeySpec) -> Result<KeyMetadata, BackendError>
fn generate_key(&mut self, spec: KeySpec) -> Result<KeyMetadata, BackendError>
Generate a new key.
The backend owns the key and returns metadata including an opaque
KeyId reference. For hardware backends, the private key never leaves
the device.
Sourcefn import_private_key(
&mut self,
spec: KeySpec,
key_bytes: &[u8],
) -> Result<KeyMetadata, BackendError>
fn import_private_key( &mut self, spec: KeySpec, key_bytes: &[u8], ) -> Result<KeyMetadata, BackendError>
Import an existing private key.
Only supported by backends that allow key import (software, some HSMs). Hardware security modules may reject key import for security reasons.
key_bytes must be in PKCS#8 DER format.
Sourcefn export_public_key(
&self,
key_id: &KeyId,
) -> Result<PublicKeyDer, BackendError>
fn export_public_key( &self, key_id: &KeyId, ) -> Result<PublicKeyDer, BackendError>
Export the public key for key_id.
Sourcefn list_keys(&self) -> Result<Vec<KeyMetadata>, BackendError>
fn list_keys(&self) -> Result<Vec<KeyMetadata>, BackendError>
List all keys managed by this backend.
Sourcefn delete_key(&mut self, key_id: &KeyId) -> Result<(), BackendError>
fn delete_key(&mut self, key_id: &KeyId) -> Result<(), BackendError>
Delete a key permanently.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".