Struct async_native_tls::TlsConnector
source · 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>>where
S: AsyncRead + AsyncWrite + Unpin,
pub async fn connect<S>( &self, host: impl Into<Host>, stream: S ) -> Result<TlsStream<S>>where S: AsyncRead + AsyncWrite + Unpin,
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));