aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMathijs van de Nes <[email protected]>2015-09-11 09:23:51 +0200
committerMathijs van de Nes <[email protected]>2015-09-11 09:23:51 +0200
commit3be32528e5b36ff80d5df9c569027bb8c8bcffe5 (patch)
tree9d22eeb8ece165b7287f76b41fe309d189cf975b
parentCheck rsa.is_null() before passing it to RSA_size (diff)
downloadrust-openssl-3be32528e5b36ff80d5df9c569027bb8c8bcffe5.tar.xz
rust-openssl-3be32528e5b36ff80d5df9c569027bb8c8bcffe5.zip
Add tests to ensure a panic occurs instead of segv
-rw-r--r--openssl/src/crypto/pkey.rs32
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(&[], &[]);
+ }
}