Skip to main content

Module client

Module client 

Available on crate feature boring only.
Expand description

TLS (Boring) client support for Rama.

Modules§

ech
ECH GREASE shape controls for client connections.
handshake
Prepare a native TLS client session before opening its transport.
profileua
UA adapters above the native TLS connector.

Structs§

AnswerMirror
The origin’s cipher (pinned only when the client offered it), the order of its ServerHello and EncryptedExtensions extensions, and (TLS 1.2) whether it answered a ticket offer, for a relay’s ingress handshake.
AutoTlsStream
A stream which can be either a secure or a plain stream.
BoringAlps
Application-Layer Protocol Settings (ALPS).
BoringCertCompression
Certificate compression algorithms to advertise.
BoringCipherSuites
Cipher suites to offer, in order (may include GREASE / unknown values).
BoringClientHelloPadding
ClientHello padding policy; native behavior is used when absent.
BoringDelegatedCredentials
Delegated credential signature schemes.
BoringEncryptedClientHello
Whether to GREASE the Encrypted ClientHello (ECH) extension.
BoringExtensionOrder
ClientHello extension prefix order; unlisted extensions follow. With GREASE on, an order naming no GREASE codepoint gets the native slots, first and last; an empty order keeps the native layout. Permutation takes precedence over it.
BoringExtensionPresence
Presence of optional TLS 1.3 ClientHello extensions BoringSSL decides itself.
BoringGrease
Whether GREASE values are injected into the ClientHello.
BoringGreaseSignatureSchemes
Whether a GREASE value leads the offered signature schemes.
BoringKeyShares
Groups to send key shares for, in order.
BoringMaxVersion
Maximum TLS version boring negotiates, overriding the max derived from the supported-versions list.
BoringMinVersion
Minimum TLS version boring negotiates, overriding the min derived from the supported-versions list.
BoringOcspStapling
Whether to request OCSP stapling (status_request).
BoringPermuteExtensions
Per-handshake extension permutation, taking precedence over BoringExtensionOrder.
BoringRecordSizeLimit
record_size_limit extension value; 0 omits the extension.
BoringRequestedTrustAnchors
Requested trust anchor identifiers for the trust_anchors ClientHello extension.
BoringServerPaddingRequest
Experimental server certificate padding requested on a fresh SSL. None explicitly omits the extension; Some(0) requests zero bytes. A new native SSL is configured before its handshake; no live SSL is reset.
BoringServerVerifyCertStore
Custom X509Store used to verify the server certificate (overrides the default OS trust store, unless verification is disabled).
BoringSignatureSchemes
Signature schemes to advertise, in order.
BoringSignedCertTimestamps
Whether to request signed certificate timestamps (SCT).
BoringSupportedGroups
Supported groups (named curves), in order.
BoringTls12SessionTickets
Whether to offer TLS 1.2 session tickets (session_ticket).
BoringTlsClientConfigProvider
Classification of request overrides understood by Boring.
BoringTlsConnectorConfig
Gather all the TLS extensions supported by boringssl
BoringTlsStream
A wrapper around an underlying raw stream which implements the SSL protocol.
ConnectorConfigClientAuth
ConnectorKindAuto
A connector which can be used to establish a connection to a server in function of the Request, meaning either it will be a seucre connector or it will be a plain connector.
ConnectorKindSecure
A connector which can only be used to establish a secure connection, regardless of the scheme of the request URI.
ConnectorKindTunnel
A connector which can be used to use this connector to support secure https tunnel connections.
EmulateTlsProfileLayer
EmulateTlsProfileService
ServerAnswerRecorder
The ServerHello and EncryptedExtensions one client connection received, recorded by its message callback. A HelloRetryRequest is replaced by the ServerHello after it.
TlsClientSession
A resumable client session bound to the policy and server it was established with.
TlsClientSessionCache
Bounded in-memory sessions: the newest few per key, evicting the least recently stored key once full.
TlsClientSessionDomain
Process-unique owner of a set of compatible client session configurations.
TlsClientSessionKey
Server identity, effective security policy and session domain required for resumption.
TlsConnector
A connector which can be used to establish a connection to a server.
TlsConnectorContext
Shared client configuration, including native context callbacks and session state.
TlsConnectorContextBuilder
Configures a reusable client TLS context before it is shared.
TlsConnectorData
The resolved native BoringSSL config consumed by super::TlsConnector.
TlsConnectorLayer
A Layer which wraps the given service with a TlsConnector.

Enums§

TlsConnectError

Traits§

BoringClientConfigExt
Boring-specific setters for TlsClientConfig.
TlsClientSessionStore
Keeps client sessions for later resumption.

Functions§

tls_connect
Establish a TLS connection with the fully resolved connector data.