From 1912ea61386cd0d4f407b2881ee93e037570a36b Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Thu, 8 Nov 2018 03:41:01 +0100 Subject: paddle: Require that input `Iterator`s also be `PartialOrd` In order to properly verify the signature, dictionary entries must be serialized in sorted order. Seems simpler to put the onus on the caller to ensure the entries can be sorted rather than having to deal with that myself. --- license-generator/paddle/src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'license-generator/paddle') diff --git a/license-generator/paddle/src/lib.rs b/license-generator/paddle/src/lib.rs index 5aef6fe..3ebc3f2 100644 --- a/license-generator/paddle/src/lib.rs +++ b/license-generator/paddle/src/lib.rs @@ -8,7 +8,7 @@ use openssl::sign::Verifier; // https://paddle.com/docs/reference-verifying-webhooks/ fn verify_signature<'a, I>(pem: &[u8], signature: &str, params: I) -> bool -where I: IntoIterator { +where I: IntoIterator + PartialOrd { let rsa = Rsa::public_key_from_pem(pem).unwrap(); let pkey = PKey::from_rsa(rsa).unwrap(); let mut verifier = Verifier::new(MessageDigest::sha1(), &pkey).unwrap(); @@ -20,7 +20,7 @@ where I: IntoIterator { } fn php_serialize<'a, I>(pairs: I) -> String -where I: IntoIterator { +where I: IntoIterator + PartialOrd { let mut serialized = String::with_capacity(500); let mut len = 0; -- cgit v1.2.3