Skip to main content

Module client

Module client 

Available on crate feature boring only.
Expand description

TLS implementation agnostic client types

ClientHello is used in Rama as the implementation agnostic type to convey what client hello was set by the incoming TLS Connection, if the server middleware is configured to store it.

By being implementation agnostic we have the advantage to be able to bridge easily between different implementations. Making it possible to run for example a Rustls proxy service but establish connections using BoringSSL.

Structs§

ClientAuthData
Raw private key and certificate data to facilitate client authentication.
ClientConfig
Common API to configure a TLS Client
ClientHello
When a client first connects to a server, it is required to send the ClientHello as its first message.
NegotiatedTlsParameters
Indicate (some) of the negotiated tls parameters that can be added to the input extensions by Tls implementations.
ProxyClientConfig
Common API to configure a Proxy TLS Client
TlsAlpn
ALPN protocols to offer.
TlsClientAuth
Client certificate authentication material (mTLS).
TlsClientConfig
A backend agnostic builder for the common TLS configs.
TlsKeyLog
Keylog intent (e.g. SSLKEYLOGFILE) for the connection.
TlsServerName
Client SNI (server name) to send, as configured on TlsClientConfig.
TlsServerVerify
How the server certificate is verified.
TlsStoreServerCertChain
Whether to capture the peer certificate chain into NegotiatedTlsParameters.
TlsSupportedVersions
Supported protocol versions, as a list (backends derive min/max as needed, preserving any GREASE entries in the wire list).

Enums§

ClientAuth
The kind of client auth to be used.
ClientHelloExtension
Extensions that can be set in a ClientHello message by a TLS client.
ECHClientHello
Client Hello contents send by ech
ServerVerifyMode
Mode of server verification by a (tls) client

Functions§

extract_sni_from_client_hello_handshake
Parse a ClientHello from the raw incoming “wire” client handshake bytes to find the SNI Host value.
extract_sni_from_client_hello_record
Parse a ClientHello from the raw “wire” bytes to find the SNI Host value.
merge_client_hello_lists
Merge extension lists A and B, with B overwriting any conflict with A, and otherwise push it to the back.
parse_client_hello
Parse a ClientHello from the raw “wire” bytes.
parse_client_hello_handshake
Parse a ClientHello from the raw handshake “wire” bytes.