Add SSLv2 support behind a cfg flag

Many OpenSSL distributions have SSLv2 support compiled out, so it should
be opt-in.
This commit is contained in:
Steven Fackler 2014-02-27 23:39:28 -08:00
parent c3cf00ea10
commit f5f10deadc
3 changed files with 18 additions and 1 deletions

View File

@ -111,6 +111,8 @@ extern "C" {
pub fn SSL_library_init() -> c_int;
#[cfg(sslv2)]
pub fn SSLv2_method() -> *SSL_METHOD;
pub fn SSLv3_method() -> *SSL_METHOD;
pub fn TLSv1_method() -> *SSL_METHOD;
pub fn SSLv23_method() -> *SSL_METHOD;

View File

@ -38,15 +38,29 @@ fn init() {
/// Determines the SSL method supported
pub enum SslMethod {
#[cfg(sslv2)]
/// Only support the SSLv2 protocol
Sslv2,
/// Only support the SSLv3 protocol
Sslv3,
/// Only support the TLSv1 protocol
Tlsv1,
/// Support the SSLv2, SSLv3 and TLSv1 protocols
Sslv23
Sslv23,
}
impl SslMethod {
#[cfg(sslv2)]
unsafe fn to_raw(&self) -> *ffi::SSL_METHOD {
match *self {
Sslv2 => ffi::SSLv2_method(),
Sslv3 => ffi::SSLv3_method(),
Tlsv1 => ffi::TLSv1_method(),
Sslv23 => ffi::SSLv23_method()
}
}
#[cfg(not(sslv2))]
unsafe fn to_raw(&self) -> *ffi::SSL_METHOD {
match *self {
Sslv3 => ffi::SSLv3_method(),

View File

@ -1,3 +1,4 @@
use std::from_str::FromStr;
use std::io::Writer;
use std::io::net::tcp::TcpStream;
use std::str;