diff options
| author | Steven Fackler <[email protected]> | 2016-07-29 22:30:47 -0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2016-07-29 22:30:47 -0700 |
| commit | 6c52291e41644149d1f1d3e37a80ece270aea6bc (patch) | |
| tree | 4904609788700bad14f904b5224f32b86a655470 /openssl/src | |
| parent | Merge pull request #425 from bbatha/chore/cargo-workspace (diff) | |
| parent | improve error handling in rsa (diff) | |
| download | rust-openssl-6c52291e41644149d1f1d3e37a80ece270aea6bc.tar.xz rust-openssl-6c52291e41644149d1f1d3e37a80ece270aea6bc.zip | |
Merge pull request #429 from bbatha/fix/crypto-errors
improve error handling in rsa
Diffstat (limited to 'openssl/src')
| -rw-r--r-- | openssl/src/crypto/rsa.rs | 42 |
1 files changed, 14 insertions, 28 deletions
diff --git a/openssl/src/crypto/rsa.rs b/openssl/src/crypto/rsa.rs index 3b420fbc..2b563a7a 100644 --- a/openssl/src/crypto/rsa.rs +++ b/openssl/src/crypto/rsa.rs @@ -110,23 +110,17 @@ impl RSA { { let mut mem_bio = try!(MemBio::new()); - let result = unsafe { - ffi::PEM_write_bio_RSAPrivateKey(mem_bio.get_handle(), + unsafe { + try_ssl!(ffi::PEM_write_bio_RSAPrivateKey(mem_bio.get_handle(), self.0, ptr::null(), ptr::null_mut(), 0, None, - ptr::null_mut()) - }; - - if result == 1 { - try!(io::copy(&mut mem_bio, writer).map_err(StreamError)); - - Ok(()) - } else { - Err(SslError::OpenSslErrors(vec![])) + ptr::null_mut())); } + try!(io::copy(&mut mem_bio, writer).map_err(StreamError)); + Ok(()) } /// Reads an RSA public key from PEM formatted data. @@ -151,15 +145,12 @@ impl RSA { { let mut mem_bio = try!(MemBio::new()); - let result = unsafe { ffi::PEM_write_bio_RSA_PUBKEY(mem_bio.get_handle(), self.0) }; - - if result == 1 { - try!(io::copy(&mut mem_bio, writer).map_err(StreamError)); + unsafe { + try_ssl!(ffi::PEM_write_bio_RSA_PUBKEY(mem_bio.get_handle(), self.0)) + }; - Ok(()) - } else { - Err(SslError::OpenSslErrors(vec![])) - } + try!(io::copy(&mut mem_bio, writer).map_err(StreamError)); + Ok(()) } pub fn size(&self) -> Result<u32, SslError> { @@ -176,19 +167,14 @@ impl RSA { let mut sig_len = k_len; unsafe { - let result = ffi::RSA_sign(hash.as_nid() as c_int, + 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); + self.0)); assert!(sig_len == k_len); - - if result == 1 { - Ok(sig) - } else { - Err(SslError::OpenSslErrors(vec![])) - } + Ok(sig) } } @@ -200,7 +186,7 @@ impl RSA { sig.as_ptr(), sig.len() as u32, self.0); - + try_ssl_if!(result == -1); Ok(result == 1) } } |