diff options
| author | Steven Fackler <[email protected]> | 2016-11-13 15:02:38 +0000 |
|---|---|---|
| committer | Steven Fackler <[email protected]> | 2016-11-13 15:02:38 +0000 |
| commit | 08e0c4ca9061c3dc0c951db0c08909689b04a310 (patch) | |
| tree | 117d95bb3cc28cf88cdedb97c985bbe9db436415 /openssl/src/dsa.rs | |
| parent | No need to use a raw string anymore (diff) | |
| download | rust-openssl-08e0c4ca9061c3dc0c951db0c08909689b04a310.tar.xz rust-openssl-08e0c4ca9061c3dc0c951db0c08909689b04a310.zip | |
Some serialization support for EcKey
Diffstat (limited to 'openssl/src/dsa.rs')
| -rw-r--r-- | openssl/src/dsa.rs | 35 |
1 files changed, 6 insertions, 29 deletions
diff --git a/openssl/src/dsa.rs b/openssl/src/dsa.rs index 72076775..962fcc9c 100644 --- a/openssl/src/dsa.rs +++ b/openssl/src/dsa.rs @@ -9,7 +9,7 @@ use bio::{MemBio, MemBioSlice}; use bn::BigNumRef; use {cvt, cvt_p}; use types::OpenSslTypeRef; -use util::{CallbackState, invoke_passwd_cb}; +use util::{CallbackState, invoke_passwd_cb_old}; type_!(Dsa, DsaRef, ffi::DSA, ffi::DSA_free); @@ -125,25 +125,9 @@ impl Dsa { } } - /// Reads a DSA private key from PEM formatted data. - pub fn private_key_from_pem(buf: &[u8]) -> Result<Dsa, ErrorStack> { - ffi::init(); - let mem_bio = try!(MemBioSlice::new(buf)); - - unsafe { - let dsa = try!(cvt_p(ffi::PEM_read_bio_DSAPrivateKey(mem_bio.as_ptr(), - ptr::null_mut(), - None, - ptr::null_mut()))); - Ok(Dsa(dsa)) - } - } + private_key_from_pem!(Dsa, ffi::PEM_read_bio_DSAPrivateKey); - /// Read a private key from PEM supplying a password callback to be invoked if the private key - /// is encrypted. - /// - /// The callback will be passed the password buffer and should return the number of characters - /// placed into the buffer. + #[deprecated(since = "0.9.2", note = "use private_key_from_pem_callback")] pub fn private_key_from_pem_cb<F>(buf: &[u8], pass_cb: F) -> Result<Dsa, ErrorStack> where F: FnOnce(&mut [c_char]) -> usize { @@ -155,7 +139,7 @@ impl Dsa { let cb_ptr = &mut cb as *mut _ as *mut c_void; let dsa = try!(cvt_p(ffi::PEM_read_bio_DSAPrivateKey(mem_bio.as_ptr(), ptr::null_mut(), - Some(invoke_passwd_cb::<F>), + Some(invoke_passwd_cb_old::<F>), cb_ptr))); Ok(Dsa(dsa)) } @@ -235,8 +219,6 @@ mod compat { #[cfg(test)] mod test { - use libc::c_char; - use super::*; #[test] @@ -248,14 +230,9 @@ mod test { pub fn test_password() { let mut password_queried = false; let key = include_bytes!("../test/dsa-encrypted.pem"); - Dsa::private_key_from_pem_cb(key, |password| { + Dsa::private_key_from_pem_callback(key, |password| { password_queried = true; - password[0] = b'm' as c_char; - password[1] = b'y' as c_char; - password[2] = b'p' as c_char; - password[3] = b'a' as c_char; - password[4] = b's' as c_char; - password[5] = b's' as c_char; + password[..6].copy_from_slice(b"mypass"); 6 }) .unwrap(); |