cyfs_base/crypto/
verifier.rs

1use 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}