aboutsummaryrefslogtreecommitdiff
path: root/openssl/src/dsa.rs
diff options
context:
space:
mode:
authorSteven Fackler <[email protected]>2016-11-13 16:09:52 +0000
committerSteven Fackler <[email protected]>2016-11-13 16:09:52 +0000
commit387e78257b578fef5933142085aefa1c76722b49 (patch)
tree319cee47bc8e88f7f083ef14937b35a64c637344 /openssl/src/dsa.rs
parentAdd private_key_from_pem_passphrase (diff)
downloadrust-openssl-387e78257b578fef5933142085aefa1c76722b49.tar.xz
rust-openssl-387e78257b578fef5933142085aefa1c76722b49.zip
Support serialization of encrypted private keys
Switch to PEM_write_bio_PKCS8PrivateKey since the other function outputs nonstandard PEM when encrypting.
Diffstat (limited to 'openssl/src/dsa.rs')
-rw-r--r--openssl/src/dsa.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/openssl/src/dsa.rs b/openssl/src/dsa.rs
index 86476aac..39f98475 100644
--- a/openssl/src/dsa.rs
+++ b/openssl/src/dsa.rs
@@ -207,6 +207,8 @@ mod compat {
#[cfg(test)]
mod test {
+ use symm::Cipher;
+
use super::*;
#[test]
@@ -221,6 +223,14 @@ mod test {
}
#[test]
+ fn test_to_password() {
+ let key = Dsa::generate(2048).unwrap();
+ let pem = key.private_key_to_pem_passphrase(Cipher::aes_128_cbc(), b"foobar").unwrap();
+ Dsa::private_key_from_pem_passphrase(&pem, b"foobar").unwrap();
+ assert!(Dsa::private_key_from_pem_passphrase(&pem, b"fizzbuzz").is_err());
+ }
+
+ #[test]
pub fn test_password_callback() {
let mut password_queried = false;
let key = include_bytes!("../test/dsa-encrypted.pem");