aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeddy Wing2018-11-10 18:40:05 +0100
committerTeddy Wing2018-11-10 18:40:05 +0100
commitd2587251a9b1b1d4d8f887fe079a3e0bbc017de8 (patch)
tree1fb4aca56ded8dc01bcbf9261e82beeb317e8d57
parent5032558a2b6583da65e0e5478670b277bb95a417 (diff)
downloaddome-key-web-d2587251a9b1b1d4d8f887fe079a3e0bbc017de8.tar.bz2
paddle::verify_signature(): Fix signature verification
I think I was doing it in the wrong direction. Previously, I had added the signature from the POST param to the verifier, and verified against the serialized params. Seems like I was instead supposed to add the serialized params to the verifier, and verify against the input signature. It works correctly now against a request from Paddle.
-rw-r--r--license-generator/paddle/src/lib.rs6
1 files changed, 3 insertions, 3 deletions
diff --git a/license-generator/paddle/src/lib.rs b/license-generator/paddle/src/lib.rs
index d725efe..be10a76 100644
--- a/license-generator/paddle/src/lib.rs
+++ b/license-generator/paddle/src/lib.rs
@@ -36,11 +36,11 @@ where
let rsa = Rsa::public_key_from_pem(pem)?;
let pkey = PKey::from_rsa(rsa)?;
let mut verifier = Verifier::new(MessageDigest::sha1(), &pkey)?;
- verifier.update(signature)?;
- let signature = php_serialize(params);
+ let digest = php_serialize(params);
+ verifier.update(digest.as_bytes())?;
- Ok(verifier.verify(signature.as_ref())?)
+ Ok(verifier.verify(signature)?)
}
fn php_serialize<'a, S, I>(pairs: I) -> String