bucky_objects/
verifier.rs

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