Put password callbacks behind a cargo feature

This commit is contained in:
Jonas Schievink 2016-06-22 22:05:03 +02:00
parent c1b7cd2420
commit 41b78547ad
4 changed files with 14 additions and 2 deletions

View File

@ -27,6 +27,7 @@ ecdh_auto = ["openssl-sys-extras/ecdh_auto"]
pkcs5_pbkdf2_hmac = ["openssl-sys/pkcs5_pbkdf2_hmac"] pkcs5_pbkdf2_hmac = ["openssl-sys/pkcs5_pbkdf2_hmac"]
nightly = [] nightly = []
catch_unwind = []
[dependencies] [dependencies]
bitflags = ">= 0.5.0, < 0.8.0" bitflags = ">= 0.5.0, < 0.8.0"

View File

@ -24,6 +24,7 @@ pub mod rand;
pub mod symm; pub mod symm;
pub mod memcmp; pub mod memcmp;
pub mod rsa; pub mod rsa;
#[cfg(feature = "catch_unwind")]
mod util; mod util;
mod symm_internal; mod symm_internal;

View File

@ -1,4 +1,4 @@
use libc::{c_int, c_uint, c_ulong, c_void, c_char}; use libc::{c_int, c_uint, c_ulong};
use std::io; use std::io;
use std::io::prelude::*; use std::io::prelude::*;
use std::iter::repeat; use std::iter::repeat;
@ -12,6 +12,10 @@ use crypto::hash::Type as HashType;
use ffi; use ffi;
use ssl::error::{SslError, StreamError}; use ssl::error::{SslError, StreamError};
use crypto::rsa::RSA; use crypto::rsa::RSA;
#[cfg(feature = "catch_unwind")]
use libc::{c_void, c_char};
#[cfg(feature = "catch_unwind")]
use crypto::util::{CallbackState, invoke_passwd_cb}; use crypto::util::{CallbackState, invoke_passwd_cb};
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
@ -99,6 +103,7 @@ impl PKey {
/// ///
/// The callback will be passed the password buffer and should return the number of characters /// The callback will be passed the password buffer and should return the number of characters
/// placed into the buffer. /// placed into the buffer.
#[cfg(feature = "catch_unwind")]
pub fn private_key_from_pem_cb<R, F>(reader: &mut R, pass_cb: F) -> Result<PKey, SslError> pub fn private_key_from_pem_cb<R, F>(reader: &mut R, pass_cb: F) -> Result<PKey, SslError>
where R: Read, F: FnMut(&mut [c_char]) -> usize where R: Read, F: FnMut(&mut [c_char]) -> usize
{ {

View File

@ -3,12 +3,16 @@ use std::fmt;
use ssl::error::{SslError, StreamError}; use ssl::error::{SslError, StreamError};
use std::ptr; use std::ptr;
use std::io::{self, Read, Write}; use std::io::{self, Read, Write};
use libc::{c_int, c_void, c_char}; use libc::c_int;
use bn::BigNum; use bn::BigNum;
use bio::MemBio; use bio::MemBio;
use crypto::HashTypeInternals; use crypto::HashTypeInternals;
use crypto::hash; use crypto::hash;
#[cfg(feature = "catch_unwind")]
use libc::{c_void, c_char};
#[cfg(feature = "catch_unwind")]
use crypto::util::{CallbackState, invoke_passwd_cb}; use crypto::util::{CallbackState, invoke_passwd_cb};
pub struct RSA(*mut ffi::RSA); pub struct RSA(*mut ffi::RSA);
@ -78,6 +82,7 @@ impl RSA {
} }
/// Reads an RSA private key from PEM formatted data and supplies a password callback. /// Reads an RSA private key from PEM formatted data and supplies a password callback.
#[cfg(feature = "catch_unwind")]
pub fn private_key_from_pem_cb<R, F>(reader: &mut R, pass_cb: F) -> Result<RSA, SslError> pub fn private_key_from_pem_cb<R, F>(reader: &mut R, pass_cb: F) -> Result<RSA, SslError>
where R: Read, F: FnMut(&mut [c_char]) -> usize where R: Read, F: FnMut(&mut [c_char]) -> usize
{ {