Module client
Available on crate feature
tls 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§
- Client
Auth Data - Raw private key and certificate data to facilitate client authentication.
- Client
Hello - When a client first connects to a server, it is required to send the ClientHello as its first message.
- Distrusted
Server Keys - Reject server chains that contain any of a set of distrusted public keys.
- DynTls
Server Cert Chain Policy - A shared, type-erased
TlsServerCertChainPolicy, as enforced by a TLS client. Every policy converts into one. - Negotiated
TlsAlgorithms - Algorithms selected by a TLS handshake.
- Negotiated
TlsParameters - TLS parameters reported by either endpoint and stored in connection extensions. QUIC can expose this while the handshake progresses; optional values may become available later and do not imply handshake completion.
- Server
Cert Chain - A server certificate chain handed to a
TlsServerCertChainPolicy. - Server
Chain Certificate - One certificate of a
ServerCertChain. - TlsClient
Auth - Client certificate authentication material (mTLS).
- TlsClient
Config - A backend agnostic builder for the common TLS configs.
- TlsComponent
Identity - Owning instance identity for components whose policy follows a shared object.
- TlsConnection
Reuse - Reuse rules published by the connector that performed a TLS handshake.
- TlsDerived
Policy - Caller policy for settings derived while opening an origin connection.
- TlsPool
Id - Compact, process-local identity of request-level TLS overrides.
- TlsPool
IdBuilder - Build a backend-independent identity with shared presence and field encoding.
- TlsServer
Authenticated Aliases - Additional server names the peer certificate of one established connection was verified for, under the same effective trust and pin policy as its primary.
- TlsServer
Authentication - Server identity authenticated by the effective TLS verification policy.
- TlsServer
Cert PinSet - One alternative group of server leaf pins, optionally scoped to server names.
- TlsServer
Cert Pins - Server leaf certificate pin sets accepted by a TLS client.
- TlsServer
Name - Server identity used for certificate verification and, for DNS names, SNI.
- TlsServer
Trust - Server trust policy used with
ServerVerifyMode::Auto. - TlsServer
Trust Anchors - DER-encoded certificates used as TLS client server trust anchors.
- TlsServer
Verify - How the server certificate is verified.
- TlsSession
Profile Scope - Stable emulation profile identity for TLS session resumption.
- TlsStore
Server Cert Chain - Whether to capture the peer certificate chain into
NegotiatedTlsParameters. - TlsStore
Server Hello - Whether to capture the server’s ServerHello into
NegotiatedTlsParameters.
Enums§
- Client
Auth - The kind of client auth to be used.
- Client
Handshake - Session offer for a new TLS connection, independent of ticket retention.
- Client
Hello Extension - Extensions that can be set in a
ClientHellomessage by a TLS client. - Client
Hello Handshake Prefix - Outcome of incrementally classifying a (possibly partial) TLS ClientHello handshake, for fail-fast protocol peeking.
- ECHClient
Hello - Client Hello contents send by ech
- Server
Cert Chain Kind - How a
ServerCertChainwas obtained. - Server
Trust Source - Source of trust for normal server-certificate verification.
- Server
Verify Mode - Mode of server verification by a (tls) client
- TlsServer
Cert Pin - A single accepted server leaf pin.
- TlsServer
Identity - A server certificate identity resolved from a
Host.
Traits§
- TlsClient
Config Provider - Classify the request overrides understood by a fixed TLS configuration provider.
- TlsPool
Component - Explicit pooling identity for a custom TLS configuration component.
- TlsServer
Cert Chain Policy - A reject-only check of the server certificate chain.
Functions§
- client_
hello_ extension_ is_ connection_ bound - Returns whether a ClientHello extension payload belongs to one connection.
- extract_
sni_ from_ client_ hello_ handshake - Parse a
ClientHellofrom the raw incoming “wire” client handshake bytes to find the SNI Host value. - extract_
sni_ from_ client_ hello_ record - Parse a
ClientHellofrom the raw “wire” bytes to find the SNI Host value. - http_
alpn_ override - Resolve an explicit target HTTP version to an ALPN offer override.
- merge_
client_ hello_ lists - Merge extension lists A and B, with B overwriting any conflict with A, and otherwise push it to the back.
- negotiated_
http_ version - Interpret negotiated ALPN for HTTP and validate the version policy.
- parse_
client_ hello - Parse a
ClientHellofrom the raw “wire” bytes. - parse_
client_ hello_ handshake - Parse a
ClientHellofrom the raw handshake “wire” bytes. - parse_
client_ hello_ handshake_ prefix - Incrementally classify a (possibly partial) TLS ClientHello handshake.
- parse_
client_ hello_ message_ prefix - Incrementally classify a (possibly partial) bare TLS ClientHello handshake message: the handshake header and body with no TLS record layer in front, as QUIC carries in its CRYPTO stream (RFC 9001 §4.1).