Module client

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
ClientConfigChain
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 service context by Tls implementations.
ProxyClientConfig
Common API to configure a Proxy TLS Client

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§

append_all_client_configs_to_ctx
append_client_config_to_ctx
extract_client_config_from_ctx
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.