1
2
3
4
5
6
7
8
9
10
use crate::vault::{Secret, Signature};
use crate::Result;
use crate::{async_trait, compat::boxed::Box};

/// Defines the Vault interface for Signing.
#[async_trait]
pub trait Signer {
    /// Generate a `Signature` for the given data using the given `Secret` key.
    async fn sign(&self, secret_key: &Secret, data: &[u8]) -> Result<Signature>;
}