cyfs_base/crypto/
verifier.rs1use crate::*;
2
3use async_trait::async_trait;
4
5#[async_trait]
6pub trait Verifier: Send + Sync {
7 fn public_key(&self) -> &PublicKey;
8 async fn verify(&self, data: &[u8], sign: &Signature) -> bool;
9}
10
11#[async_trait]
12pub trait PublicKeySearch: Send + Sync {
13 async fn search_public_key(&self, sign: &Signature) -> BuckyResult<&PublicKey>;
14}
15
16#[async_trait]
17impl Verifier for Box<dyn Verifier> {
18 fn public_key(&self) -> &PublicKey {
19 self.as_ref().public_key()
20 }
21
22 async fn verify(&self, data: &[u8], sign: &Signature) -> bool {
23 self.as_ref().verify(data, sign).await
24 }
25}