Commit 9ea9c195 authored by Kevin Ballard's avatar Kevin Ballard
Browse files

Update for latest master (0.9-pre b42c438)

parent 25e18fab
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@
 */

#[link(name = "crypto",
       package_id = "crypto",
       vers = "0.3",
       uuid = "38297409-b4c2-4499-8131-a99a7e44dad3")];
#[crate_type = "lib"];
+0 −5
Original line number Diff line number Diff line
@@ -41,7 +41,6 @@ mod libcrypto {
}

pub fn evpmd(t: HashType) -> (EVP_MD, uint) {
    #[fixed_stack_segment]; #[inline(never)];
    unsafe {
        match t {
            MD5 => (libcrypto::EVP_md5(), 16u),
@@ -62,7 +61,6 @@ pub struct Hasher {

impl Hasher {
    pub fn new(ht: HashType) -> Hasher {
        #[fixed_stack_segment]; #[inline(never)];
        let ctx = unsafe { libcrypto::EVP_MD_CTX_create() };
        let (evp, mdlen) = evpmd(ht);
        unsafe {
@@ -74,7 +72,6 @@ impl Hasher {

    /// Update this hasher with more input bytes
    pub fn update(&self, data: &[u8]) {
        #[fixed_stack_segment]; #[inline(never)];
        do data.as_imm_buf |pdata, len| {
            unsafe {
                libcrypto::EVP_DigestUpdate(self.ctx, pdata, len as c_uint)
@@ -87,7 +84,6 @@ impl Hasher {
     * initialization
     */
    pub fn final(&self) -> ~[u8] {
        #[fixed_stack_segment]; #[inline(never)];
        let mut res = vec::from_elem(self.len, 0u8);
        do res.as_mut_buf |pres, _len| {
            unsafe {
@@ -100,7 +96,6 @@ impl Hasher {

impl Drop for Hasher {
    fn drop(&mut self) {
        #[fixed_stack_segment]; #[inline(never)];
        unsafe {
            libcrypto::EVP_MD_CTX_destroy(self.ctx);
        }
+0 −4
Original line number Diff line number Diff line
@@ -28,7 +28,6 @@ pub struct HMAC_CTX {
}

#[link_args = "-lcrypto"]
#[abi = "cdecl"]
extern {
    fn HMAC_CTX_init(ctx: *mut HMAC_CTX, key: *u8, keylen: libc::c_int, md: EVP_MD);

@@ -43,7 +42,6 @@ pub struct HMAC {
}

pub fn HMAC(ht: HashType, key: ~[u8]) -> HMAC {
    #[fixed_stack_segment]; #[inline(never)];
    unsafe {

        let (evp, mdlen) = evpmd(ht);
@@ -68,7 +66,6 @@ pub fn HMAC(ht: HashType, key: ~[u8]) -> HMAC {

impl HMAC {
    pub fn update(&mut self, data: &[u8]) {
        #[fixed_stack_segment]; #[inline(never)];
        unsafe {
            do data.as_imm_buf |pdata, len| {
                HMAC_Update(&mut self.ctx, pdata, len as libc::c_uint)
@@ -77,7 +74,6 @@ impl HMAC {
    }

    pub fn final(&mut self) -> ~[u8] {
        #[fixed_stack_segment]; #[inline(never)];
        unsafe {
            let mut res = vec::from_elem(self.len, 0u8);
            let mut outlen: libc::c_uint = 0;
+0 −2
Original line number Diff line number Diff line
@@ -14,8 +14,6 @@ mod libcrypto {
}

/// Derives a key from a password and salt using the PBKDF2-HMAC-SHA1 algorithm.
#[fixed_stack_segment]
#[inline(never)]
pub fn pbkdf2_hmac_sha1(pass: &str, salt: &[u8], iter: uint,
                        keylen: uint) -> ~[u8] {
    assert!(iter >= 1u);
+0 −11
Original line number Diff line number Diff line
@@ -87,7 +87,6 @@ pub struct PKey {
/// Represents a public key, optionally with a private key attached.
impl PKey {
    pub fn new() -> PKey {
        #[fixed_stack_segment]; #[inline(never)];
        PKey {
            evp: unsafe { libcrypto::EVP_PKEY_new() },
            parts: Neither,
@@ -95,7 +94,6 @@ impl PKey {
    }

    fn _tostr(&self, f: extern "C" unsafe fn(*EVP_PKEY, **mut u8) -> c_int) -> ~[u8] {
        #[fixed_stack_segment]; #[inline(never)];
        unsafe {
            let len = f(self.evp, ptr::null());
            if len < 0 as c_int { return ~[]; }
@@ -111,7 +109,6 @@ impl PKey {
    }

    fn _fromstr(&mut self, s: &[u8], f: extern "C" unsafe fn(c_int, **EVP_PKEY, **u8, c_uint) -> *EVP_PKEY) {
        #[fixed_stack_segment]; #[inline(never)];
        do s.as_imm_buf |ps, len| {
            let evp = ptr::null();
            unsafe {
@@ -122,7 +119,6 @@ impl PKey {
    }

    pub fn gen(&mut self, keysz: uint) {
        #[fixed_stack_segment]; #[inline(never)];
        unsafe {
            let rsa = libcrypto::RSA_generate_key(
                keysz as c_uint,
@@ -176,7 +172,6 @@ impl PKey {
     * Returns the size of the public key modulus.
     */
    pub fn size(&self) -> uint {
        #[fixed_stack_segment]; #[inline(never)];
        unsafe {
            libcrypto::RSA_size(libcrypto::EVP_PKEY_get1_RSA(self.evp)) as uint
        }
@@ -215,7 +210,6 @@ impl PKey {
     * call.
     */
    pub fn max_data(&self) -> uint {
        #[fixed_stack_segment]; #[inline(never)];
        unsafe {
            let rsa = libcrypto::EVP_PKEY_get1_RSA(self.evp);
            let len = libcrypto::RSA_size(rsa);
@@ -226,7 +220,6 @@ impl PKey {
    }

    pub fn encrypt_with_padding(&self, s: &[u8], padding: EncryptionPadding) -> ~[u8] {
        #[fixed_stack_segment]; #[inline(never)];
        unsafe {
            let rsa = libcrypto::EVP_PKEY_get1_RSA(self.evp);
            let len = libcrypto::RSA_size(rsa);
@@ -256,7 +249,6 @@ impl PKey {
    }

    pub fn decrypt_with_padding(&self, s: &[u8], padding: EncryptionPadding) -> ~[u8] {
        #[fixed_stack_segment]; #[inline(never)];
        unsafe {
            let rsa = libcrypto::EVP_PKEY_get1_RSA(self.evp);
            let len = libcrypto::RSA_size(rsa);
@@ -310,7 +302,6 @@ impl PKey {
    pub fn verify(&self, m: &[u8], s: &[u8]) -> bool { self.verify_with_hash(m, s, SHA256) }

    pub fn sign_with_hash(&self, s: &[u8], hash: HashType) -> ~[u8] {
        #[fixed_stack_segment]; #[inline(never)];
        unsafe {
            let rsa = libcrypto::EVP_PKEY_get1_RSA(self.evp);
            let mut len = libcrypto::RSA_size(rsa);
@@ -338,7 +329,6 @@ impl PKey {
    }

    pub fn verify_with_hash(&self, m: &[u8], s: &[u8], hash: HashType) -> bool {
        #[fixed_stack_segment]; #[inline(never)];
        unsafe {
            let rsa = libcrypto::EVP_PKEY_get1_RSA(self.evp);

@@ -362,7 +352,6 @@ impl PKey {

impl Drop for PKey {
    fn drop(&mut self) {
        #[fixed_stack_segment]; #[inline(never)];
        unsafe {
            libcrypto::EVP_PKEY_free(self.evp);
        }
Loading