pub trait HsmBackend: Send + Sync {
// Required methods
fn seal(&self, share: &[u8], label: &str) -> Result<SealedShare, HsmError>;
fn unseal(&self, sealed: &SealedShare) -> Result<Vec<u8>, HsmError>;
fn generate_key(&self, label: &str) -> Result<String, HsmError>;
fn delete_key(&self, handle: &str) -> Result<(), HsmError>;
fn attest(&self, challenge: &[u8]) -> Result<Vec<u8>, HsmError>;
fn name(&self) -> &str;
}Expand description
Trait for HSM share protection backends.
Required Methods§
Sourcefn seal(&self, share: &[u8], label: &str) -> Result<SealedShare, HsmError>
fn seal(&self, share: &[u8], label: &str) -> Result<SealedShare, HsmError>
Seal (encrypt) a share inside the HSM.
Sourcefn unseal(&self, sealed: &SealedShare) -> Result<Vec<u8>, HsmError>
fn unseal(&self, sealed: &SealedShare) -> Result<Vec<u8>, HsmError>
Unseal (decrypt) a share from the HSM.
Sourcefn generate_key(&self, label: &str) -> Result<String, HsmError>
fn generate_key(&self, label: &str) -> Result<String, HsmError>
Generate a new key inside the HSM. Returns the handle.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".