Skip to main content

ssi_data_integrity_core/suite/standard/
signature.rs

1use ssi_claims_core::SignatureError;
2
3use crate::{CryptographicSuite, ProofConfigurationRef};
4
5pub trait SignatureAndVerificationAlgorithm {
6    type Signature: AsRef<str>;
7}
8
9pub trait SignatureAlgorithm<S: CryptographicSuite, T>: SignatureAndVerificationAlgorithm {
10    #[allow(async_fn_in_trait)]
11    async fn sign(
12        verification_method: &S::VerificationMethod,
13        signer: T,
14        prepared_claims: S::PreparedClaims,
15        proof_configuration: ProofConfigurationRef<'_, S>,
16    ) -> Result<Self::Signature, SignatureError>;
17}