bucky_objects/
verifier.rs1use 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}