Loading openssl/src/pkey.rs +5 −5 Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ use ffi; use {cvt, cvt_p}; use bio::{MemBio, MemBioSlice}; use dsa::Dsa; use rsa::RSA; use rsa::Rsa; use error::ErrorStack; use util::{CallbackState, invoke_passwd_cb}; Loading @@ -18,7 +18,7 @@ unsafe impl Sync for PKey {} /// Represents a public key, optionally with a private key attached. impl PKey { /// Create a new `PKey` containing an RSA key. pub fn from_rsa(rsa: RSA) -> Result<PKey, ErrorStack> { pub fn from_rsa(rsa: Rsa) -> Result<PKey, ErrorStack> { unsafe { let evp = try!(cvt_p(ffi::EVP_PKEY_new())); let pkey = PKey(evp); Loading Loading @@ -102,7 +102,7 @@ impl PKey { } /// assign RSA key to this pkey pub fn set_rsa(&mut self, rsa: &RSA) -> Result<(), ErrorStack> { pub fn set_rsa(&mut self, rsa: &Rsa) -> Result<(), ErrorStack> { unsafe { // this needs to be a reference as the set1_RSA ups the reference count let rsa_ptr = rsa.as_ptr(); Loading @@ -112,11 +112,11 @@ impl PKey { } /// Get a reference to the interal RSA key for direct access to the key components pub fn rsa(&self) -> Result<RSA, ErrorStack> { pub fn rsa(&self) -> Result<Rsa, ErrorStack> { unsafe { let rsa = try!(cvt_p(ffi::EVP_PKEY_get1_RSA(self.0))); // this is safe as the ffi increments a reference counter to the internal key Ok(RSA::from_ptr(rsa)) Ok(Rsa::from_ptr(rsa)) } } Loading openssl/src/rsa.rs +25 −25 Original line number Diff line number Diff line Loading @@ -28,9 +28,9 @@ impl Padding { } } pub struct RSA(*mut ffi::RSA); pub struct Rsa(*mut ffi::RSA); impl Drop for RSA { impl Drop for Rsa { fn drop(&mut self) { unsafe { ffi::RSA_free(self.0); Loading @@ -38,12 +38,12 @@ impl Drop for RSA { } } impl RSA { impl Rsa { /// only useful for associating the key material directly with the key, it's safer to use /// the supplied load and save methods for DER formatted keys. pub fn from_public_components(n: BigNum, e: BigNum) -> Result<RSA, ErrorStack> { pub fn from_public_components(n: BigNum, e: BigNum) -> Result<Rsa, ErrorStack> { unsafe { let rsa = RSA(try!(cvt_p(ffi::RSA_new()))); let rsa = Rsa(try!(cvt_p(ffi::RSA_new()))); try!(cvt(compat::set_key(rsa.0, n.as_ptr(), e.as_ptr(), Loading @@ -61,9 +61,9 @@ impl RSA { dp: BigNum, dq: BigNum, qi: BigNum) -> Result<RSA, ErrorStack> { -> Result<Rsa, ErrorStack> { unsafe { let rsa = RSA(try!(cvt_p(ffi::RSA_new()))); let rsa = Rsa(try!(cvt_p(ffi::RSA_new()))); try!(cvt(compat::set_key(rsa.0, n.as_ptr(), e.as_ptr(), d.as_ptr()))); mem::forget((n, e, d)); try!(cvt(compat::set_factors(rsa.0, p.as_ptr(), q.as_ptr()))); Loading @@ -75,16 +75,16 @@ impl RSA { } } pub unsafe fn from_ptr(rsa: *mut ffi::RSA) -> RSA { RSA(rsa) pub unsafe fn from_ptr(rsa: *mut ffi::RSA) -> Rsa { Rsa(rsa) } /// Generates a public/private key pair with the specified size. /// /// The public exponent will be 65537. pub fn generate(bits: u32) -> Result<RSA, ErrorStack> { pub fn generate(bits: u32) -> Result<Rsa, ErrorStack> { unsafe { let rsa = RSA(try!(cvt_p(ffi::RSA_new()))); let rsa = Rsa(try!(cvt_p(ffi::RSA_new()))); let e = try!(BigNum::from_u32(ffi::RSA_F4 as u32)); try!(cvt(ffi::RSA_generate_key_ex(rsa.0, bits as c_int, e.as_ptr(), ptr::null_mut()))); Ok(rsa) Loading @@ -92,19 +92,19 @@ impl RSA { } /// Reads an RSA private key from PEM formatted data. pub fn private_key_from_pem(buf: &[u8]) -> Result<RSA, ErrorStack> { pub fn private_key_from_pem(buf: &[u8]) -> Result<Rsa, ErrorStack> { let mem_bio = try!(MemBioSlice::new(buf)); unsafe { let rsa = try!(cvt_p(ffi::PEM_read_bio_RSAPrivateKey(mem_bio.as_ptr(), ptr::null_mut(), None, ptr::null_mut()))); Ok(RSA(rsa)) Ok(Rsa(rsa)) } } /// Reads an RSA private key from PEM formatted data and supplies a password callback. pub fn private_key_from_pem_cb<F>(buf: &[u8], pass_cb: F) -> Result<RSA, ErrorStack> pub fn private_key_from_pem_cb<F>(buf: &[u8], pass_cb: F) -> Result<Rsa, ErrorStack> where F: FnOnce(&mut [c_char]) -> usize { let mut cb = CallbackState::new(pass_cb); Loading @@ -116,19 +116,19 @@ impl RSA { ptr::null_mut(), Some(invoke_passwd_cb::<F>), cb_ptr))); Ok(RSA(rsa)) Ok(Rsa(rsa)) } } /// Reads an RSA public key from PEM formatted data. pub fn public_key_from_pem(buf: &[u8]) -> Result<RSA, ErrorStack> { pub fn public_key_from_pem(buf: &[u8]) -> Result<Rsa, ErrorStack> { let mem_bio = try!(MemBioSlice::new(buf)); unsafe { let rsa = try!(cvt_p(ffi::PEM_read_bio_RSA_PUBKEY(mem_bio.as_ptr(), ptr::null_mut(), None, ptr::null_mut()))); Ok(RSA(rsa)) Ok(Rsa(rsa)) } } Loading Loading @@ -323,7 +323,7 @@ impl RSA { } } impl fmt::Debug for RSA { impl fmt::Debug for Rsa { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!(f, "RSA") } Loading Loading @@ -422,7 +422,7 @@ mod test { pub fn test_password() { let mut password_queried = false; let key = include_bytes!("../test/rsa-encrypted.pem"); RSA::private_key_from_pem_cb(key, |password| { Rsa::private_key_from_pem_cb(key, |password| { password_queried = true; password[0] = b'm' as c_char; password[1] = b'y' as c_char; Loading @@ -439,7 +439,7 @@ mod test { #[test] pub fn test_public_encrypt_private_decrypt_with_padding() { let key = include_bytes!("../test/rsa.pem.pub"); let public_key = RSA::public_key_from_pem(key).unwrap(); let public_key = Rsa::public_key_from_pem(key).unwrap(); let mut result = vec![0; public_key.size()]; let original_data = b"This is test"; Loading @@ -447,7 +447,7 @@ mod test { assert_eq!(len, 256); let pkey = include_bytes!("../test/rsa.pem"); let private_key = RSA::private_key_from_pem(pkey).unwrap(); let private_key = Rsa::private_key_from_pem(pkey).unwrap(); let mut dec_result = vec![0; private_key.size()]; let len = private_key.private_decrypt(&result, &mut dec_result, Padding::pkcs1()).unwrap(); Loading @@ -456,9 +456,9 @@ mod test { #[test] fn test_private_encrypt() { let k0 = super::RSA::generate(512).unwrap(); let k0 = super::Rsa::generate(512).unwrap(); let k0pkey = k0.public_key_to_pem().unwrap(); let k1 = super::RSA::public_key_from_pem(&k0pkey).unwrap(); let k1 = super::Rsa::public_key_from_pem(&k0pkey).unwrap(); let msg = vec![0xdeu8, 0xadu8, 0xd0u8, 0x0du8]; Loading @@ -471,9 +471,9 @@ mod test { #[test] fn test_public_encrypt() { let k0 = super::RSA::generate(512).unwrap(); let k0 = super::Rsa::generate(512).unwrap(); let k0pkey = k0.private_key_to_pem().unwrap(); let k1 = super::RSA::private_key_from_pem(&k0pkey).unwrap(); let k1 = super::Rsa::private_key_from_pem(&k0pkey).unwrap(); let msg = vec![0xdeu8, 0xadu8, 0xd0u8, 0x0du8]; Loading openssl/src/sign.rs +4 −4 Original line number Diff line number Diff line Loading @@ -210,7 +210,7 @@ mod test { use hash::MessageDigest; use sign::{Signer, Verifier}; use rsa::RSA; use rsa::Rsa; use dsa::Dsa; use pkey::PKey; Loading Loading @@ -241,7 +241,7 @@ mod test { #[test] fn rsa_sign() { let key = include_bytes!("../test/rsa.pem"); let private_key = RSA::private_key_from_pem(key).unwrap(); let private_key = Rsa::private_key_from_pem(key).unwrap(); let pkey = PKey::from_rsa(private_key).unwrap(); let mut signer = Signer::new(MessageDigest::sha256(), &pkey).unwrap(); Loading @@ -254,7 +254,7 @@ mod test { #[test] fn rsa_verify_ok() { let key = include_bytes!("../test/rsa.pem"); let private_key = RSA::private_key_from_pem(key).unwrap(); let private_key = Rsa::private_key_from_pem(key).unwrap(); let pkey = PKey::from_rsa(private_key).unwrap(); let mut verifier = Verifier::new(MessageDigest::sha256(), &pkey).unwrap(); Loading @@ -265,7 +265,7 @@ mod test { #[test] fn rsa_verify_invalid() { let key = include_bytes!("../test/rsa.pem"); let private_key = RSA::private_key_from_pem(key).unwrap(); let private_key = Rsa::private_key_from_pem(key).unwrap(); let pkey = PKey::from_rsa(private_key).unwrap(); let mut verifier = Verifier::new(MessageDigest::sha256(), &pkey).unwrap(); Loading openssl/src/x509/tests.rs +2 −2 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ use serialize::hex::FromHex; use hash::MessageDigest; use pkey::PKey; use rsa::RSA; use rsa::Rsa; use x509::{X509, X509Generator}; use x509::extension::Extension::{KeyUsage, ExtKeyUsage, SubjectAltName, OtherNid, OtherStr}; use x509::extension::AltNameOption as SAN; Loading @@ -25,7 +25,7 @@ fn get_generator() -> X509Generator { } fn pkey() -> PKey { let rsa = RSA::generate(2048).unwrap(); let rsa = Rsa::generate(2048).unwrap(); PKey::from_rsa(rsa).unwrap() } Loading Loading
openssl/src/pkey.rs +5 −5 Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ use ffi; use {cvt, cvt_p}; use bio::{MemBio, MemBioSlice}; use dsa::Dsa; use rsa::RSA; use rsa::Rsa; use error::ErrorStack; use util::{CallbackState, invoke_passwd_cb}; Loading @@ -18,7 +18,7 @@ unsafe impl Sync for PKey {} /// Represents a public key, optionally with a private key attached. impl PKey { /// Create a new `PKey` containing an RSA key. pub fn from_rsa(rsa: RSA) -> Result<PKey, ErrorStack> { pub fn from_rsa(rsa: Rsa) -> Result<PKey, ErrorStack> { unsafe { let evp = try!(cvt_p(ffi::EVP_PKEY_new())); let pkey = PKey(evp); Loading Loading @@ -102,7 +102,7 @@ impl PKey { } /// assign RSA key to this pkey pub fn set_rsa(&mut self, rsa: &RSA) -> Result<(), ErrorStack> { pub fn set_rsa(&mut self, rsa: &Rsa) -> Result<(), ErrorStack> { unsafe { // this needs to be a reference as the set1_RSA ups the reference count let rsa_ptr = rsa.as_ptr(); Loading @@ -112,11 +112,11 @@ impl PKey { } /// Get a reference to the interal RSA key for direct access to the key components pub fn rsa(&self) -> Result<RSA, ErrorStack> { pub fn rsa(&self) -> Result<Rsa, ErrorStack> { unsafe { let rsa = try!(cvt_p(ffi::EVP_PKEY_get1_RSA(self.0))); // this is safe as the ffi increments a reference counter to the internal key Ok(RSA::from_ptr(rsa)) Ok(Rsa::from_ptr(rsa)) } } Loading
openssl/src/rsa.rs +25 −25 Original line number Diff line number Diff line Loading @@ -28,9 +28,9 @@ impl Padding { } } pub struct RSA(*mut ffi::RSA); pub struct Rsa(*mut ffi::RSA); impl Drop for RSA { impl Drop for Rsa { fn drop(&mut self) { unsafe { ffi::RSA_free(self.0); Loading @@ -38,12 +38,12 @@ impl Drop for RSA { } } impl RSA { impl Rsa { /// only useful for associating the key material directly with the key, it's safer to use /// the supplied load and save methods for DER formatted keys. pub fn from_public_components(n: BigNum, e: BigNum) -> Result<RSA, ErrorStack> { pub fn from_public_components(n: BigNum, e: BigNum) -> Result<Rsa, ErrorStack> { unsafe { let rsa = RSA(try!(cvt_p(ffi::RSA_new()))); let rsa = Rsa(try!(cvt_p(ffi::RSA_new()))); try!(cvt(compat::set_key(rsa.0, n.as_ptr(), e.as_ptr(), Loading @@ -61,9 +61,9 @@ impl RSA { dp: BigNum, dq: BigNum, qi: BigNum) -> Result<RSA, ErrorStack> { -> Result<Rsa, ErrorStack> { unsafe { let rsa = RSA(try!(cvt_p(ffi::RSA_new()))); let rsa = Rsa(try!(cvt_p(ffi::RSA_new()))); try!(cvt(compat::set_key(rsa.0, n.as_ptr(), e.as_ptr(), d.as_ptr()))); mem::forget((n, e, d)); try!(cvt(compat::set_factors(rsa.0, p.as_ptr(), q.as_ptr()))); Loading @@ -75,16 +75,16 @@ impl RSA { } } pub unsafe fn from_ptr(rsa: *mut ffi::RSA) -> RSA { RSA(rsa) pub unsafe fn from_ptr(rsa: *mut ffi::RSA) -> Rsa { Rsa(rsa) } /// Generates a public/private key pair with the specified size. /// /// The public exponent will be 65537. pub fn generate(bits: u32) -> Result<RSA, ErrorStack> { pub fn generate(bits: u32) -> Result<Rsa, ErrorStack> { unsafe { let rsa = RSA(try!(cvt_p(ffi::RSA_new()))); let rsa = Rsa(try!(cvt_p(ffi::RSA_new()))); let e = try!(BigNum::from_u32(ffi::RSA_F4 as u32)); try!(cvt(ffi::RSA_generate_key_ex(rsa.0, bits as c_int, e.as_ptr(), ptr::null_mut()))); Ok(rsa) Loading @@ -92,19 +92,19 @@ impl RSA { } /// Reads an RSA private key from PEM formatted data. pub fn private_key_from_pem(buf: &[u8]) -> Result<RSA, ErrorStack> { pub fn private_key_from_pem(buf: &[u8]) -> Result<Rsa, ErrorStack> { let mem_bio = try!(MemBioSlice::new(buf)); unsafe { let rsa = try!(cvt_p(ffi::PEM_read_bio_RSAPrivateKey(mem_bio.as_ptr(), ptr::null_mut(), None, ptr::null_mut()))); Ok(RSA(rsa)) Ok(Rsa(rsa)) } } /// Reads an RSA private key from PEM formatted data and supplies a password callback. pub fn private_key_from_pem_cb<F>(buf: &[u8], pass_cb: F) -> Result<RSA, ErrorStack> pub fn private_key_from_pem_cb<F>(buf: &[u8], pass_cb: F) -> Result<Rsa, ErrorStack> where F: FnOnce(&mut [c_char]) -> usize { let mut cb = CallbackState::new(pass_cb); Loading @@ -116,19 +116,19 @@ impl RSA { ptr::null_mut(), Some(invoke_passwd_cb::<F>), cb_ptr))); Ok(RSA(rsa)) Ok(Rsa(rsa)) } } /// Reads an RSA public key from PEM formatted data. pub fn public_key_from_pem(buf: &[u8]) -> Result<RSA, ErrorStack> { pub fn public_key_from_pem(buf: &[u8]) -> Result<Rsa, ErrorStack> { let mem_bio = try!(MemBioSlice::new(buf)); unsafe { let rsa = try!(cvt_p(ffi::PEM_read_bio_RSA_PUBKEY(mem_bio.as_ptr(), ptr::null_mut(), None, ptr::null_mut()))); Ok(RSA(rsa)) Ok(Rsa(rsa)) } } Loading Loading @@ -323,7 +323,7 @@ impl RSA { } } impl fmt::Debug for RSA { impl fmt::Debug for Rsa { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!(f, "RSA") } Loading Loading @@ -422,7 +422,7 @@ mod test { pub fn test_password() { let mut password_queried = false; let key = include_bytes!("../test/rsa-encrypted.pem"); RSA::private_key_from_pem_cb(key, |password| { Rsa::private_key_from_pem_cb(key, |password| { password_queried = true; password[0] = b'm' as c_char; password[1] = b'y' as c_char; Loading @@ -439,7 +439,7 @@ mod test { #[test] pub fn test_public_encrypt_private_decrypt_with_padding() { let key = include_bytes!("../test/rsa.pem.pub"); let public_key = RSA::public_key_from_pem(key).unwrap(); let public_key = Rsa::public_key_from_pem(key).unwrap(); let mut result = vec![0; public_key.size()]; let original_data = b"This is test"; Loading @@ -447,7 +447,7 @@ mod test { assert_eq!(len, 256); let pkey = include_bytes!("../test/rsa.pem"); let private_key = RSA::private_key_from_pem(pkey).unwrap(); let private_key = Rsa::private_key_from_pem(pkey).unwrap(); let mut dec_result = vec![0; private_key.size()]; let len = private_key.private_decrypt(&result, &mut dec_result, Padding::pkcs1()).unwrap(); Loading @@ -456,9 +456,9 @@ mod test { #[test] fn test_private_encrypt() { let k0 = super::RSA::generate(512).unwrap(); let k0 = super::Rsa::generate(512).unwrap(); let k0pkey = k0.public_key_to_pem().unwrap(); let k1 = super::RSA::public_key_from_pem(&k0pkey).unwrap(); let k1 = super::Rsa::public_key_from_pem(&k0pkey).unwrap(); let msg = vec![0xdeu8, 0xadu8, 0xd0u8, 0x0du8]; Loading @@ -471,9 +471,9 @@ mod test { #[test] fn test_public_encrypt() { let k0 = super::RSA::generate(512).unwrap(); let k0 = super::Rsa::generate(512).unwrap(); let k0pkey = k0.private_key_to_pem().unwrap(); let k1 = super::RSA::private_key_from_pem(&k0pkey).unwrap(); let k1 = super::Rsa::private_key_from_pem(&k0pkey).unwrap(); let msg = vec![0xdeu8, 0xadu8, 0xd0u8, 0x0du8]; Loading
openssl/src/sign.rs +4 −4 Original line number Diff line number Diff line Loading @@ -210,7 +210,7 @@ mod test { use hash::MessageDigest; use sign::{Signer, Verifier}; use rsa::RSA; use rsa::Rsa; use dsa::Dsa; use pkey::PKey; Loading Loading @@ -241,7 +241,7 @@ mod test { #[test] fn rsa_sign() { let key = include_bytes!("../test/rsa.pem"); let private_key = RSA::private_key_from_pem(key).unwrap(); let private_key = Rsa::private_key_from_pem(key).unwrap(); let pkey = PKey::from_rsa(private_key).unwrap(); let mut signer = Signer::new(MessageDigest::sha256(), &pkey).unwrap(); Loading @@ -254,7 +254,7 @@ mod test { #[test] fn rsa_verify_ok() { let key = include_bytes!("../test/rsa.pem"); let private_key = RSA::private_key_from_pem(key).unwrap(); let private_key = Rsa::private_key_from_pem(key).unwrap(); let pkey = PKey::from_rsa(private_key).unwrap(); let mut verifier = Verifier::new(MessageDigest::sha256(), &pkey).unwrap(); Loading @@ -265,7 +265,7 @@ mod test { #[test] fn rsa_verify_invalid() { let key = include_bytes!("../test/rsa.pem"); let private_key = RSA::private_key_from_pem(key).unwrap(); let private_key = Rsa::private_key_from_pem(key).unwrap(); let pkey = PKey::from_rsa(private_key).unwrap(); let mut verifier = Verifier::new(MessageDigest::sha256(), &pkey).unwrap(); Loading
openssl/src/x509/tests.rs +2 −2 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ use serialize::hex::FromHex; use hash::MessageDigest; use pkey::PKey; use rsa::RSA; use rsa::Rsa; use x509::{X509, X509Generator}; use x509::extension::Extension::{KeyUsage, ExtKeyUsage, SubjectAltName, OtherNid, OtherStr}; use x509::extension::AltNameOption as SAN; Loading @@ -25,7 +25,7 @@ fn get_generator() -> X509Generator { } fn pkey() -> PKey { let rsa = RSA::generate(2048).unwrap(); let rsa = Rsa::generate(2048).unwrap(); PKey::from_rsa(rsa).unwrap() } Loading