Commit fde7fbd0 authored by Chris Cole's avatar Chris Cole
Browse files

Merge remote-tracking branch 'upstream/master'

parents f5f8c0e6 df9a7357
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
[package]
name = "openssl"
version = "0.2.10"
version = "0.2.11"
authors = ["Steven Fackler <sfackler@gmail.com>"]
license = "Apache-2.0"
description = "OpenSSL bindings"
@@ -17,4 +17,4 @@ aes_xts = ["openssl-sys/aes_xts"]

[dependencies.openssl-sys]
path = "openssl-sys"
version = "0.2.10"
version = "0.2.11"
+1 −1
Original line number Diff line number Diff line
[package]
name = "openssl-sys"
version = "0.2.10"
version = "0.2.11"
authors = ["Alex Crichton <alex@alexcrichton.com>",
           "Steven Fackler <sfackler@gmail.com>"]
license = "MIT"
+4 −3
Original line number Diff line number Diff line
@@ -211,14 +211,15 @@ pub fn init() {
    static mut INIT: Once = ONCE_INIT;

    unsafe {
        INIT.doit(|| {
        INIT.call_once(|| {
            SSL_library_init();
            SSL_load_error_strings();

            let num_locks = CRYPTO_num_locks();
            let mutexes = box Vec::from_fn(num_locks as uint, |_| MUTEX_INIT);
            let mutexes = box range(0, num_locks).map(|_| MUTEX_INIT).collect::<Vec<_>>();
            MUTEXES = mem::transmute(mutexes);
            let guards: Box<Vec<Option<MutexGuard<()>>>> = box Vec::from_fn(num_locks as uint, |_| None);
            let guards: Box<Vec<Option<MutexGuard<()>>>> =
                box range(0, num_locks).map(|_| None).collect();
            GUARDS = mem::transmute(guards);

            CRYPTO_set_locking_callback(locking_function);
+10 −8
Original line number Diff line number Diff line
use libc::{c_int, c_ulong, c_void};
use std::{fmt, ptr};
use std::c_str::CString;
use std::cmp::Ordering;
use std::{fmt, ptr};

use ffi;
use ssl::error::SslError;

pub struct BigNum(*mut ffi::BIGNUM);

#[deriving(Copy)]
#[derive(Copy)]
#[repr(C)]
pub enum RNGProperty {
    MsbMaybeZero = -1,
@@ -371,11 +372,11 @@ impl BigNum {
        unsafe {
            let res = ffi::BN_ucmp(self.raw(), oth.raw()) as i32;
            if res < 0 {
                Less
                Ordering::Less
            } else if res > 0 {
                Greater
                Ordering::Greater
            } else {
                Equal
                Ordering::Equal
            }
        }
    }
@@ -466,11 +467,11 @@ impl PartialOrd for BigNum {
            let v = ffi::BN_cmp(self.raw(), oth.raw());
            let ret =
                if v == 0 {
                    Equal
                    Ordering::Equal
                } else if v < 0 {
                    Less
                    Ordering::Less
                } else {
                    Greater
                    Ordering::Greater
                };
            Some(ret)
        }
@@ -488,6 +489,7 @@ impl Drop for BigNum {
}

pub mod unchecked {
    use std::ops::{Add, Div, Mul, Neg, Rem, Shl, Shr, Sub};
    use ffi;
    use super::{BigNum};

+3 −2
Original line number Diff line number Diff line
use libc::c_uint;
use std::ptr;
use std::io;
use std::iter::repeat;

use ffi;

#[deriving(Copy)]
#[derive(Copy)]
pub enum HashType {
    MD5,
    SHA1,
@@ -101,7 +102,7 @@ impl Hasher {
     * initialization and its context for reuse
     */
    pub fn finalize_reuse(self) -> (Vec<u8>, HasherContext) {
        let mut res = Vec::from_elem(self.len, 0u8);
        let mut res = repeat(0u8).take(self.len).collect::<Vec<_>>();
        unsafe {
            ffi::EVP_DigestFinal_ex(self.ctx.ptr, res.as_mut_ptr(), ptr::null_mut())
        };
Loading