ockam_vault_core/
secret_vault.rs1use crate::secret::Secret;
2use crate::types::{PublicKey, SecretAttributes, SecretKey};
3use ockam_core::Result;
4use ockam_core::{async_trait, compat::boxed::Box};
5
6#[async_trait]
8pub trait SecretVault {
9 async fn secret_generate(&mut self, attributes: SecretAttributes) -> Result<Secret>;
11 async fn secret_import(
13 &mut self,
14 secret: &[u8],
15 attributes: SecretAttributes,
16 ) -> Result<Secret>;
17 async fn secret_export(&mut self, context: &Secret) -> Result<SecretKey>;
19 async fn secret_attributes_get(&mut self, context: &Secret) -> Result<SecretAttributes>;
21 async fn secret_public_key_get(&mut self, context: &Secret) -> Result<PublicKey>;
23 async fn secret_destroy(&mut self, context: Secret) -> Result<()>;
25}