diff options
| author | Mathijs van de Nes <[email protected]> | 2015-09-11 09:23:51 +0200 |
|---|---|---|
| committer | Mathijs van de Nes <[email protected]> | 2015-09-11 09:23:51 +0200 |
| commit | 3be32528e5b36ff80d5df9c569027bb8c8bcffe5 (patch) | |
| tree | 9d22eeb8ece165b7287f76b41fe309d189cf975b /openssl/src | |
| parent | Check rsa.is_null() before passing it to RSA_size (diff) | |
| download | rust-openssl-3be32528e5b36ff80d5df9c569027bb8c8bcffe5.tar.xz rust-openssl-3be32528e5b36ff80d5df9c569027bb8c8bcffe5.zip | |
Add tests to ensure a panic occurs instead of segv
Diffstat (limited to 'openssl/src')
| -rw-r--r-- | openssl/src/crypto/pkey.rs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/openssl/src/crypto/pkey.rs b/openssl/src/crypto/pkey.rs index 980e8216..d59a9cfb 100644 --- a/openssl/src/crypto/pkey.rs +++ b/openssl/src/crypto/pkey.rs @@ -560,4 +560,36 @@ mod tests { assert!(priv_key.windows(11).any(|s| s == b"PRIVATE KEY")); assert!(pub_key.windows(10).any(|s| s == b"PUBLIC KEY")); } + + #[test] + #[should_panic(expected = "Could not get RSA key for encryption")] + fn test_nokey_encrypt() { + let mut pkey = super::PKey::new(); + pkey.load_pub(&[]); + pkey.encrypt(&[]); + } + + #[test] + #[should_panic(expected = "Could not get RSA key for decryption")] + fn test_nokey_decrypt() { + let mut pkey = super::PKey::new(); + pkey.load_priv(&[]); + pkey.decrypt(&[]); + } + + #[test] + #[should_panic(expected = "Could not get RSA key for signing")] + fn test_nokey_sign() { + let mut pkey = super::PKey::new(); + pkey.load_priv(&[]); + pkey.sign(&[]); + } + + #[test] + #[should_panic(expected = "Could not get RSA key for verification")] + fn test_nokey_verify() { + let mut pkey = super::PKey::new(); + pkey.load_pub(&[]); + pkey.verify(&[], &[]); + } } |