pub struct TlsConnector { /* private fields */ }
Expand description
Connect a client to a remote server.
§Examples
use async_std::prelude::*;
use async_std::net::TcpStream;
use async_native_tls::TlsConnector;
let stream = TcpStream::connect("google.com:443").await?;
let mut stream = TlsConnector::new()
.use_sni(true)
.connect("google.com", stream)
.await?;
stream.write_all(b"GET / HTTP/1.0\r\n\r\n").await?;
let mut res = Vec::new();
stream.read_to_end(&mut res).await?;
println!("{}", String::from_utf8_lossy(&res));
Implementations§
Source§impl TlsConnector
impl TlsConnector
Sourcepub fn identity(self, identity: Identity) -> Self
pub fn identity(self, identity: Identity) -> Self
Sets the identity to be used for client certificate authentication.
Sourcepub fn min_protocol_version(self, protocol: Option<Protocol>) -> Self
pub fn min_protocol_version(self, protocol: Option<Protocol>) -> Self
Sets the minimum supported protocol version.
A value of None
enables support for the oldest protocols supported by the
implementation. Defaults to Some(Protocol::Tlsv10)
.
Sourcepub fn max_protocol_version(self, protocol: Option<Protocol>) -> Self
pub fn max_protocol_version(self, protocol: Option<Protocol>) -> Self
Sets the maximum supported protocol version.
A value of None
enables support for the newest protocols supported by the
implementation. Defaults to None
.
Sourcepub fn add_root_certificate(self, cert: Certificate) -> Self
pub fn add_root_certificate(self, cert: Certificate) -> Self
Adds a certificate to the set of roots that the connector will trust.
The connector will use the system’s trust root by default. This method can be used to add to that set when communicating with servers not trusted by the system. Defaults to an empty set.
Sourcepub fn request_alpns(self, protocols: &[&str]) -> Self
pub fn request_alpns(self, protocols: &[&str]) -> Self
Request specific protocols through ALPN (Application-Layer Protocol Negotiation).
Defaults to none
Sourcepub fn danger_accept_invalid_certs(self, accept_invalid_certs: bool) -> Self
pub fn danger_accept_invalid_certs(self, accept_invalid_certs: bool) -> Self
Controls the use of certificate validation.
Defaults to false.
§Warning
You should think very carefully before using this method. If invalid certificates are trusted, any certificate for any site will be trusted for use. This includes expired certificates. This introduces significant vulnerabilities, and should only be used as a last resort.
Sourcepub fn use_sni(self, use_sni: bool) -> Self
pub fn use_sni(self, use_sni: bool) -> Self
Controls the use of Server Name Indication (SNI).
Defaults to true
.
Sourcepub fn danger_accept_invalid_hostnames(
self,
accept_invalid_hostnames: bool,
) -> Self
pub fn danger_accept_invalid_hostnames( self, accept_invalid_hostnames: bool, ) -> Self
Controls the use of hostname verification.
Defaults to false
.
§Warning
You should think very carefully before using this method. If invalid hostnames are trusted, any valid certificate for any site will be trusted for use. This introduces significant vulnerabilities, and should only be used as a last resort.
Sourcepub async fn connect<S>(
&self,
host: impl Into<Host>,
stream: S,
) -> Result<TlsStream<S>>
pub async fn connect<S>( &self, host: impl Into<Host>, stream: S, ) -> Result<TlsStream<S>>
Connect to a remote server.
§Examples
use async_std::prelude::*;
use async_std::net::TcpStream;
use async_native_tls::TlsConnector;
let stream = TcpStream::connect("google.com:443").await?;
let mut stream = TlsConnector::new()
.use_sni(true)
.connect("google.com", stream)
.await?;
stream.write_all(b"GET / HTTP/1.0\r\n\r\n").await?;
let mut res = Vec::new();
stream.read_to_end(&mut res).await?;
println!("{}", String::from_utf8_lossy(&res));
Trait Implementations§
Source§impl Debug for TlsConnector
impl Debug for TlsConnector
Source§impl Default for TlsConnector
impl Default for TlsConnector
Source§impl From<TlsConnectorBuilder> for TlsConnector
impl From<TlsConnectorBuilder> for TlsConnector
Source§fn from(builder: TlsConnectorBuilder) -> Self
fn from(builder: TlsConnectorBuilder) -> Self
Auto Trait Implementations§
impl Freeze for TlsConnector
impl RefUnwindSafe for TlsConnector
impl Send for TlsConnector
impl Sync for TlsConnector
impl Unpin for TlsConnector
impl UnwindSafe for TlsConnector
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<T> ErasedDestructor for Twhere
T: 'static,
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 96 bytes