From 1c7700c9a01acfa67e66c904a738ed5d840b1197 Mon Sep 17 00:00:00 2001 From: "Aode (lion)" Date: Fri, 19 Nov 2021 09:58:04 -0600 Subject: [PATCH] core: simplify deliver lifetimes, add digest::build, verify::build --- apub-core/src/deliver.rs | 7 ++----- apub-core/src/digest.rs | 3 +-- apub-core/src/signature.rs | 6 ++++-- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/apub-core/src/deliver.rs b/apub-core/src/deliver.rs index ffddfba..45e83ea 100644 --- a/apub-core/src/deliver.rs +++ b/apub-core/src/deliver.rs @@ -5,9 +5,6 @@ pub trait Client<'a> { type Error: std::error::Error + 'static; type Future: Future> + 'a; - fn deliver<'b, T: serde::ser::Serialize>( - &'b self, - inbox: &'a Url, - activity: &'a T, - ) -> Self::Future; + fn deliver(&'a self, inbox: &'a Url, activity: &'a T) + -> Self::Future; } diff --git a/apub-core/src/digest.rs b/apub-core/src/digest.rs index 8e9a3e9..4709868 100644 --- a/apub-core/src/digest.rs +++ b/apub-core/src/digest.rs @@ -1,11 +1,10 @@ pub trait Digest { const NAME: &'static str; + fn build() -> Self; fn digest(self, input: &[u8]) -> String; } pub trait DigestFactory { type Digest: Digest + Send; - - fn digest(&self) -> Self::Digest; } diff --git a/apub-core/src/signature.rs b/apub-core/src/signature.rs index bc4a0f6..f78f4b2 100644 --- a/apub-core/src/signature.rs +++ b/apub-core/src/signature.rs @@ -17,11 +17,13 @@ pub trait SignFactory { pub trait Verify { type Error: std::error::Error + Send; + fn build(public_key_pem: &str) -> Result + where + Self: Sized; + fn verify(&self, signing_string: &str, signature: &str) -> Result; } pub trait VerifyFactory { type Verifier: Verify + Send + 'static; - - fn verifier(&self, public_key_pem: String) -> Self::Verifier; }