Struct rustls::ClientConfig [−][src]
Common configuration for (typically) all connections made by a program.
Making one of these can be expensive, and should be once per process rather than once per connection.
Fields
ciphersuites: Vec<&'static SupportedCipherSuite>
List of ciphersuites, in preference order.
root_store: RootCertStore
Collection of root certificates.
alpn_protocols: Vec<Vec<u8>>
Which ALPN protocols we include in our client hello. If empty, no ALPN extension is sent.
session_persistence: Arc<dyn StoresClientSessions>
How we store session data or tickets.
mtu: Option<usize>
Our MTU. If None, we don’t limit TLS message sizes.
client_auth_cert_resolver: Arc<dyn ResolvesClientCert>
How to decide what client auth certificate/keys to use.
enable_tickets: bool
Whether to support RFC5077 tickets. You must provide a working
session_persistence
member for this to have any meaningful
effect.
The default is true.
versions: Vec<ProtocolVersion>
Supported versions, in no particular order. The default is all supported versions.
ct_logs: Option<&'static [&'static Log<'static>]>
Collection of certificate transparency logs. If this collection is empty, then certificate transparency checking is disabled.
enable_sni: bool
Whether to send the Server Name Indication (SNI) extension during the client handshake.
The default is true.
key_log: Arc<dyn KeyLog>
How to output key material for debugging. The default does nothing.
enable_early_data: bool
Whether to send data on the first flight (“early data”) in TLS 1.3 handshakes.
The default is false.
Implementations
impl ClientConfig
[src]
pub fn new() -> ClientConfig
[src]
Make a ClientConfig
with a default set of ciphersuites,
no root certificates, no ALPN protocols, and no client auth.
The default session persistence provider stores up to 32 items in memory.
pub fn with_ciphersuites(
ciphersuites: &[&'static SupportedCipherSuite]
) -> ClientConfig
[src]
ciphersuites: &[&'static SupportedCipherSuite]
) -> ClientConfig
Make a ClientConfig
with a custom set of ciphersuites,
no root certificates, no ALPN protocols, and no client auth.
The default session persistence provider stores up to 32 items in memory.
pub fn set_protocols(&mut self, protocols: &[Vec<u8>])
[src]
Set the ALPN protocol list to the given protocol names.
Overwrites any existing configured protocols.
The first element in the protocols
list is the most
preferred, the last is the least preferred.
pub fn set_persistence(&mut self, persist: Arc<dyn StoresClientSessions>)
[src]
Sets persistence layer to persist
.
pub fn set_mtu(&mut self, mtu: &Option<usize>)
[src]
Sets MTU to mtu
. If None, the default is used.
If Some(x) then x must be greater than 5 bytes.
pub fn set_single_client_cert(
&mut self,
cert_chain: Vec<Certificate>,
key_der: PrivateKey
) -> Result<(), TLSError>
[src]
&mut self,
cert_chain: Vec<Certificate>,
key_der: PrivateKey
) -> Result<(), TLSError>
Sets a single client authentication certificate and private key. This is blindly used for all servers that ask for client auth.
cert_chain
is a vector of DER-encoded certificates,
key_der
is a DER-encoded RSA or ECDSA private key.
pub fn dangerous(&mut self) -> DangerousClientConfig<'_>
[src]
Access configuration options whose use is dangerous and requires extra care.
Trait Implementations
impl Clone for ClientConfig
[src]
fn clone(&self) -> ClientConfig
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Default for ClientConfig
[src]
Auto Trait Implementations
impl !RefUnwindSafe for ClientConfig
impl Send for ClientConfig
impl Sync for ClientConfig
impl Unpin for ClientConfig
impl !UnwindSafe for ClientConfig
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,