Pass SslMethod into constructors
This commit is contained in:
parent
33cce627da
commit
43b430e5b0
|
|
@ -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,23 +103,13 @@ 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,
|
||||
pub fn new<I>(method: SslMethod,
|
||||
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,
|
||||
private_key: &PKeyRef,
|
||||
certificate: &X509Ref,
|
||||
chain: I)
|
||||
-> Result<ServerConnectorBuilder, ErrorStack>
|
||||
where I: IntoIterator,
|
||||
I::Item: AsRef<X509Ref>
|
||||
{
|
||||
let mut ctx = try!(ctx(method));
|
||||
ctx.set_options(ssl::SSL_OP_SINGLE_DH_USE | ssl::SSL_OP_SINGLE_ECDH_USE |
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue