ockam_vault_sync_core/vault_mutex/
asymmetric_vault.rs

1use crate::VaultMutex;
2use ockam_core::vault::{AsymmetricVault, PublicKey, Secret};
3use ockam_core::Result;
4use ockam_core::{async_trait, compat::boxed::Box};
5
6#[async_trait]
7impl<V: AsymmetricVault + Send> AsymmetricVault for VaultMutex<V> {
8    async fn ec_diffie_hellman(
9        &mut self,
10        context: &Secret,
11        peer_public_key: &PublicKey,
12    ) -> Result<Secret> {
13        self.0
14            .lock()
15            .await
16            .ec_diffie_hellman(context, peer_public_key)
17            .await
18    }
19}
20
21#[cfg(test)]
22mod tests {
23    use crate::VaultMutex;
24    use ockam_vault::SoftwareVault;
25
26    fn new_vault() -> VaultMutex<SoftwareVault> {
27        VaultMutex::create(SoftwareVault::default())
28    }
29
30    #[ockam_macros::vault_test]
31    fn ec_diffie_hellman_curve25519() {}
32}