1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
use ockam_vault_core::{
SecretAttributes, SecretPersistence, SecretType, SecretVault, Signer, Verifier,
CURVE25519_SECRET_LENGTH,
};
pub async fn sign(vault: &mut (impl Signer + Verifier + SecretVault)) {
let secret = vault
.secret_generate(SecretAttributes::new(
SecretType::Curve25519,
SecretPersistence::Ephemeral,
CURVE25519_SECRET_LENGTH,
))
.await
.unwrap();
let res = vault.sign(&secret, b"hello world!").await;
assert!(res.is_ok());
let pubkey = vault.secret_public_key_get(&secret).await.unwrap();
let signature = res.unwrap();
let res = vault
.verify(&signature, &pubkey, b"hello world!")
.await
.unwrap();
assert!(res);
}