Struct rustls::ClientConfig [] [src]

pub struct ClientConfig {
    pub ciphersuites: Vec<&'static SupportedCipherSuite>,
    pub root_store: RootCertStore,
    pub alpn_protocols: Vec<String>,
    pub session_persistence: Mutex<Box<StoresClientSessions>>,
    pub mtu: Option<usize>,
    pub client_auth_cert_resolver: Box<ResolvesClientCert>,
    pub enable_tickets: bool,
    pub versions: Vec<ProtocolVersion>,
    // some fields omitted
}

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

List of ciphersuites, in preference order.

Collection of root certificates.

Which ALPN protocols we include in our client hello. If empty, no ALPN extension is sent.

How we store session data or tickets.

Our MTU. If None, we don't limit TLS message sizes.

How to decide what client auth certificate/keys to use.

Whether to support RFC5077 tickets. You must provide a working session_persistence member for this to have any meaningful effect.

The default is true.

Supported versions, in no particular order. The default is all supported versions.

Methods

impl ClientConfig
[src]

Make a ClientConfig with a default set of ciphersuites, no root certificates, no ALPN protocols, no session persistence, and no client auth.

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.

Sets persistence layer to persist.

Sets MTU to mtu. If None, the default is used. If Some(x) then x must be greater than 5 bytes.

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 private key.