Commit 43b430e5 authored by Steven Fackler's avatar Steven Fackler
Browse files

Pass SslMethod into constructors

parent 33cce627
Loading
Loading
Loading
Loading
+3 −17
Original line number Diff line number Diff line
@@ -47,11 +47,7 @@ impl ClientConnectorBuilder {
    /// Creates a new builder for TLS connections.
    ///
    /// The default configuration is based off of libcurl's and is subject to change.
    pub fn tls() -> Result<ClientConnectorBuilder, ErrorStack> {
        ClientConnectorBuilder::new(SslMethod::tls())
    }

    fn new(method: SslMethod) -> Result<ClientConnectorBuilder, ErrorStack> {
    pub fn new(method: SslMethod) -> Result<ClientConnectorBuilder, ErrorStack> {
        let mut ctx = try!(ctx(method));
        try!(ctx.set_default_verify_paths());
        try!(ctx.set_cipher_list("ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH"));
@@ -107,17 +103,7 @@ impl ServerConnectorBuilder {
    ///
    /// The default configuration is based off of the intermediate profile of Mozilla's server side
    /// TLS configuration recommendations, and is subject to change.
    pub fn tls<I>(private_key: &PKeyRef,
                  certificate: &X509Ref,
                  chain: I)
                  -> Result<ServerConnectorBuilder, ErrorStack>
        where I: IntoIterator,
              I::Item: AsRef<X509Ref>
    {
        ServerConnectorBuilder::new(SslMethod::tls(), private_key, certificate, chain)
    }

    fn new<I>(method: SslMethod,
    pub fn new<I>(method: SslMethod,
                  private_key: &PKeyRef,
                  certificate: &X509Ref,
                  chain: I)
+7 −4
Original line number Diff line number Diff line
@@ -8,11 +8,11 @@
//! To connect as a client to a remote server:
//!
//! ```
//! use openssl::ssl::ClientConnectorBuilder;
//! use openssl::ssl::{SslMethod, ClientConnectorBuilder};
//! use std::io::{Read, Write};
//! use std::net::TcpStream;
//!
//! let connector = ClientConnectorBuilder::tls().unwrap().build();
//! let connector = ClientConnectorBuilder::new(SslMethod::tls()).unwrap().build();
//!
//! let stream = TcpStream::connect("google.com:443").unwrap();
//! let mut stream = connector.connect("google.com", stream).unwrap();
@@ -27,7 +27,7 @@
//!
//! ```no_run
//! use openssl::pkcs12::Pkcs12;
//! use openssl::ssl::{ServerConnectorBuilder, SslStream};
//! use openssl::ssl::{SslMethod, ServerConnectorBuilder, SslStream};
//! use std::fs::File;
//! use std::io::{Read, Write};
//! use std::net::{TcpListener, TcpStream};
@@ -43,7 +43,10 @@
//! let pkcs12 = Pkcs12::from_der(&pkcs12).unwrap();
//! let identity = pkcs12.parse("password123").unwrap();
//!
//! let connector = ServerConnectorBuilder::tls(&identity.pkey, &identity.cert, &identity.chain)
//! let connector = ServerConnectorBuilder::new(SslMethod::tls(),
//!                                             &identity.pkey,
//!                                             &identity.cert,
//!                                             &identity.chain)
//!     .unwrap()
//!     .build();
//! let connector = Arc::new(connector);
+6 −4
Original line number Diff line number Diff line
@@ -1082,7 +1082,7 @@ fn verify_invalid_hostname() {

#[test]
fn connector_valid_hostname() {
    let connector = ClientConnectorBuilder::tls().unwrap().build();
    let connector = ClientConnectorBuilder::new(SslMethod::tls()).unwrap().build();

    let s = TcpStream::connect("google.com:443").unwrap();
    let mut socket = connector.connect("google.com", s).unwrap();
@@ -1098,7 +1098,7 @@ fn connector_valid_hostname() {

#[test]
fn connector_invalid_hostname() {
    let connector = ClientConnectorBuilder::tls().unwrap().build();
    let connector = ClientConnectorBuilder::new(SslMethod::tls()).unwrap().build();

    let s = TcpStream::connect("google.com:443").unwrap();
    assert!(connector.connect("foobar.com", s).is_err());
@@ -1112,14 +1112,16 @@ fn connector_client_server() {
    let t = thread::spawn(move || {
        let key = PKey::private_key_from_pem(KEY).unwrap();
        let cert = X509::from_pem(CERT).unwrap();
        let connector = ServerConnectorBuilder::tls(&key, &cert, None::<X509>).unwrap().build();
        let connector = ServerConnectorBuilder::new(SslMethod::tls(), &key, &cert, None::<X509>)
            .unwrap()
            .build();
        let stream = listener.accept().unwrap().0;
        let mut stream = connector.connect(stream).unwrap();

        stream.write_all(b"hello").unwrap();
    });

    let mut connector = ClientConnectorBuilder::tls().unwrap();
    let mut connector = ClientConnectorBuilder::new(SslMethod::tls()).unwrap();
    connector.context_mut().set_CA_file("test/root-ca.pem").unwrap();
    let connector = connector.build();