Commit 3c50c744 authored by Steven Fackler's avatar Steven Fackler
Browse files

Camel case Rsa

parent b619c4e8
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -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};

@@ -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);
@@ -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();
@@ -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))
        }
    }

+25 −25
Original line number Diff line number Diff line
@@ -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);
@@ -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(),
@@ -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())));
@@ -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)
@@ -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);
@@ -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))
        }
    }

@@ -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")
    }
@@ -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;
@@ -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";
@@ -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();

@@ -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];

@@ -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];

+4 −4
Original line number Diff line number Diff line
@@ -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;

@@ -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();
@@ -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();
@@ -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();
+2 −2
Original line number Diff line number Diff line
@@ -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;
@@ -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()
}