bucky_objects/
signer.rs

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