diff options
| author | Steven Fackler <[email protected]> | 2016-08-07 18:03:13 -0700 |
|---|---|---|
| committer | Steven Fackler <[email protected]> | 2016-08-07 18:03:13 -0700 |
| commit | 7515272692ea30ee320667563027f75508f1dc60 (patch) | |
| tree | 612fb88f7dd692be81407e862bb5e705edff6bf8 /openssl/src/crypto | |
| parent | Fix bn tests on 32 bit (diff) | |
| download | rust-openssl-7515272692ea30ee320667563027f75508f1dc60.tar.xz rust-openssl-7515272692ea30ee320667563027f75508f1dc60.zip | |
Fix RSA::verify
It never returns -1 - all errors are indicated by 0
Diffstat (limited to 'openssl/src/crypto')
| -rw-r--r-- | openssl/src/crypto/rsa.rs | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/openssl/src/crypto/rsa.rs b/openssl/src/crypto/rsa.rs index c9433b10..3410239f 100644 --- a/openssl/src/crypto/rsa.rs +++ b/openssl/src/crypto/rsa.rs @@ -144,27 +144,26 @@ impl RSA { unsafe { try_ssl!(ffi::RSA_sign(hash.as_nid() as c_int, - message.as_ptr(), - message.len() as u32, - sig.as_mut_ptr(), - &mut sig_len, - self.0)); + message.as_ptr(), + message.len() as u32, + sig.as_mut_ptr(), + &mut sig_len, + self.0)); assert!(sig_len == k_len); Ok(sig) } } - pub fn verify(&self, hash: hash::Type, message: &[u8], sig: &[u8]) -> Result<bool, ErrorStack> { + pub fn verify(&self, hash: hash::Type, message: &[u8], sig: &[u8]) -> Result<(), ErrorStack> { unsafe { - let result = ffi::RSA_verify(hash.as_nid() as c_int, - message.as_ptr(), - message.len() as u32, - sig.as_ptr(), - sig.len() as u32, - self.0); - try_ssl_if!(result == -1); - Ok(result == 1) + try_ssl!(ffi::RSA_verify(hash.as_nid() as c_int, + message.as_ptr(), + message.len() as u32, + sig.as_ptr(), + sig.len() as u32, + self.0)); } + Ok(()) } pub fn as_ptr(&self) -> *mut ffi::RSA { @@ -280,9 +279,7 @@ mod test { sha.write_all(&signing_input_rs256()).unwrap(); let digest = sha.finish().unwrap(); - let result = public_key.verify(Type::SHA256, &digest, &signature_rs256()).unwrap(); - - assert!(result); + assert!(public_key.verify(Type::SHA256, &digest, &signature_rs256()).is_ok()); } #[test] |