From 1d37ebb812737df5d985780f0e00cb17c920caab Mon Sep 17 00:00:00 2001 From: asonix Date: Fri, 17 Jan 2020 17:09:05 -0600 Subject: [PATCH] Simplify passing verifier --- .../src/digest/mod.rs | 25 ++++++++----------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/http-signature-normalization-warp/src/digest/mod.rs b/http-signature-normalization-warp/src/digest/mod.rs index 9ad7caa..edb4308 100644 --- a/http-signature-normalization-warp/src/digest/mod.rs +++ b/http-signature-normalization-warp/src/digest/mod.rs @@ -35,16 +35,13 @@ pub enum ParseDigestError { #[error("Could not parse request body")] pub struct ParseBodyError; -pub fn verify_digest_bytes( - verifier: impl Filter + Clone, -) -> impl Filter + Clone -where - D: DigestVerify + Send, -{ - verifier - .and(parse_digest_header()) +pub fn verify_digest_bytes( + verifier: impl DigestVerify + Clone + Send, +) -> impl Filter + Clone { + parse_digest_header() .and(body::bytes()) - .and_then(|mut verifier: D, parts: Vec, bytes: Bytes| { + .and_then(move |parts: Vec, bytes: Bytes| { + let mut verifier = verifier.clone(); async move { if verifier.verify(&parts, &bytes) { Ok(bytes) @@ -55,11 +52,10 @@ where }) } -pub fn verify_digest_json( - verifier: impl Filter + Clone, +pub fn verify_digest_json( + verifier: impl DigestVerify + Clone + Send ) -> impl Filter + Clone where - D: DigestVerify + Send, T: serde::de::DeserializeOwned, { verify_digest_bytes(verifier).and_then(|bytes: Bytes| { @@ -69,11 +65,10 @@ where }) } -pub fn verify_digest_form( - verifier: impl Filter + Clone, +pub fn verify_digest_form( + verifier: impl DigestVerify + Clone + Send, ) -> impl Filter + Clone where - D: DigestVerify + Send, T: serde::de::DeserializeOwned, { verify_digest_bytes(verifier).and_then(|bytes: Bytes| {