Struct TlsClientConfig
pub struct TlsClientConfig(/* private fields */);tls only.Expand description
A backend agnostic builder for the common TLS configs.
It holds a set of fine grained config extensions (e.g. TlsAlpn, TlsServerVerify)
and exposes typed setters for the settings both TLS backends support.
Backend crates add setters for their backend-specific pieces via extension
traits (RustlsClientConfigExt or BoringServerConfigExt).
Implementations§
§impl TlsClientConfig
impl TlsClientConfig
pub fn with_alpn_policy(self, policy: AlpnPolicy) -> TlsClientConfig
Available on crate feature boring only.
pub fn with_alpn_policy(self, policy: AlpnPolicy) -> TlsClientConfig
boring only.Configure application protocol agreement for HTTP connections. Strict mode requires ALPN for HTTP/2 whether selected explicitly or by fallback. Without an override, explicit HTTP/2 targets may proceed without ALPN; HTTP/3 requires ALPN. HTTP/1 retains its legacy no-ALPN behavior. Out-of-band HTTP/3 requires a supporting QUIC TLS backend.
pub fn set_alpn_policy(&mut self, policy: AlpnPolicy) -> &mut TlsClientConfig
Available on crate feature boring only.
pub fn set_alpn_policy(&mut self, policy: AlpnPolicy) -> &mut TlsClientConfig
boring only.Configure application protocol agreement for HTTP connections. Strict mode requires ALPN for HTTP/2 whether selected explicitly or by fallback. Without an override, explicit HTTP/2 targets may proceed without ALPN; HTTP/3 requires ALPN. HTTP/1 retains its legacy no-ALPN behavior. Out-of-band HTTP/3 requires a supporting QUIC TLS backend.
pub fn with_client_handshake(self, mode: ClientHandshake) -> TlsClientConfig
Available on crate feature boring only.
pub fn with_client_handshake(self, mode: ClientHandshake) -> TlsClientConfig
boring only.Select the session offer for new connections. Ticket retention and reuse of established connections remain independent.
pub fn set_client_handshake(
&mut self,
mode: ClientHandshake,
) -> &mut TlsClientConfig
Available on crate feature boring only.
pub fn set_client_handshake( &mut self, mode: ClientHandshake, ) -> &mut TlsClientConfig
boring only.Select the session offer for new connections. Ticket retention and reuse of established connections remain independent.
pub fn with_session_profile_scope(
self,
scope: TlsSessionProfileScope,
) -> TlsClientConfig
Available on crate feature boring only.
pub fn with_session_profile_scope( self, scope: TlsSessionProfileScope, ) -> TlsClientConfig
boring only.Add a stable emulation profile identity to TLS session and connection reuse. Server identity and the effective security policy remain mandatory.
pub fn set_session_profile_scope(
&mut self,
scope: TlsSessionProfileScope,
) -> &mut TlsClientConfig
Available on crate feature boring only.
pub fn set_session_profile_scope( &mut self, scope: TlsSessionProfileScope, ) -> &mut TlsClientConfig
boring only.Add a stable emulation profile identity to TLS session and connection reuse. Server identity and the effective security policy remain mandatory.
pub fn new() -> TlsClientConfig
Available on crate feature boring only.
pub fn new() -> TlsClientConfig
boring only.Create an empty config.
pub fn default_http() -> TlsClientConfig
Available on crate feature boring only.
pub fn default_http() -> TlsClientConfig
boring only.Create a default TlsClientConfig that enables:
- ALPN: H2, http1.1
- Keylogger:
KeyLogIntent::Environment
pub fn write_to(&self, extensions: &Extensions)
Available on crate feature boring only.
pub fn write_to(&self, extensions: &Extensions)
boring only.Transfer this config’s pieces onto extensions (appending, so they
override existing entries of the same type — newest-wins). Use this to
transfer the tls config to e.g. request extensions
pub fn alpn(&self) -> Option<TlsAlpn>
Available on crate feature boring only.
pub fn alpn(&self) -> Option<TlsAlpn>
boring only.Return the configured ALPN offer, if one was set explicitly.
pub fn with_alpn(
self,
protocols: SmallVec<[ApplicationProtocol; 2]>,
) -> TlsClientConfig
Available on crate feature boring only.
pub fn with_alpn( self, protocols: SmallVec<[ApplicationProtocol; 2]>, ) -> TlsClientConfig
boring only.Set the ALPN protocols to offer.
pub fn set_alpn(
&mut self,
protocols: SmallVec<[ApplicationProtocol; 2]>,
) -> &mut TlsClientConfig
Available on crate feature boring only.
pub fn set_alpn( &mut self, protocols: SmallVec<[ApplicationProtocol; 2]>, ) -> &mut TlsClientConfig
boring only.Set the ALPN protocols to offer.
pub fn with_alpn_http_auto(self) -> TlsClientConfig
Available on crate feature boring only.
pub fn with_alpn_http_auto(self) -> TlsClientConfig
boring only.Offer HTTP/2 and HTTP/1.1 via ALPN.
pub fn set_alpn_http_auto(&mut self) -> &mut TlsClientConfig
Available on crate feature boring only.
pub fn set_alpn_http_auto(&mut self) -> &mut TlsClientConfig
boring only.Offer HTTP/2 and HTTP/1.1 via ALPN.
pub fn with_alpn_http_1(self) -> TlsClientConfig
Available on crate feature boring only.
pub fn with_alpn_http_1(self) -> TlsClientConfig
boring only.Offer HTTP/1.1 only via ALPN.
pub fn set_alpn_http_1(&mut self) -> &mut TlsClientConfig
Available on crate feature boring only.
pub fn set_alpn_http_1(&mut self) -> &mut TlsClientConfig
boring only.Offer HTTP/1.1 only via ALPN.
pub fn with_alpn_http_2(self) -> TlsClientConfig
Available on crate feature boring only.
pub fn with_alpn_http_2(self) -> TlsClientConfig
boring only.Offer HTTP/2 only via ALPN.
pub fn set_alpn_http_2(&mut self) -> &mut TlsClientConfig
Available on crate feature boring only.
pub fn set_alpn_http_2(&mut self) -> &mut TlsClientConfig
boring only.Offer HTTP/2 only via ALPN.
pub fn with_server_name(self, server_name: Host) -> TlsClientConfig
Available on crate feature boring only.
pub fn with_server_name(self, server_name: Host) -> TlsClientConfig
boring only.Set the server identity used for certificate verification.
A DNS identity is also sent as SNI. An IP identity is matched against
an iPAddress subject alternative name and is not sent as SNI.
Overrides the identity the connector would otherwise derive from the
transport authority host. When this config is installed as a tunnel
connector’s dedicated base, it also overrides
[TlsTunnel::server_identity]. Top-level origin request extensions
are not applied to a proxy-side tunnel handshake.
pub fn set_server_name(&mut self, server_name: Host) -> &mut TlsClientConfig
Available on crate feature boring only.
pub fn set_server_name(&mut self, server_name: Host) -> &mut TlsClientConfig
boring only.Set the server identity used for certificate verification.
A DNS identity is also sent as SNI. An IP identity is matched against
an iPAddress subject alternative name and is not sent as SNI.
Overrides the identity the connector would otherwise derive from the
transport authority host. When this config is installed as a tunnel
connector’s dedicated base, it also overrides
[TlsTunnel::server_identity]. Top-level origin request extensions
are not applied to a proxy-side tunnel handshake.
pub fn with_server_verify(self, mode: ServerVerifyMode) -> TlsClientConfig
Available on crate feature boring only.
pub fn with_server_verify(self, mode: ServerVerifyMode) -> TlsClientConfig
boring only.Set how the server certificate is verified.
pub fn set_server_verify(
&mut self,
mode: ServerVerifyMode,
) -> &mut TlsClientConfig
Available on crate feature boring only.
pub fn set_server_verify( &mut self, mode: ServerVerifyMode, ) -> &mut TlsClientConfig
boring only.Set how the server certificate is verified.
pub fn with_server_cert_pins(self, pins: TlsServerCertPins) -> TlsClientConfig
Available on crate feature boring only.
pub fn with_server_cert_pins(self, pins: TlsServerCertPins) -> TlsClientConfig
boring only.Require the server leaf certificate to match an applicable pin set.
With ServerVerifyMode::Auto, normal certificate verification must
also succeed. With ServerVerifyMode::Disable, applicable pins are
the only certificate check.
pub fn set_server_cert_pins(
&mut self,
pins: TlsServerCertPins,
) -> &mut TlsClientConfig
Available on crate feature boring only.
pub fn set_server_cert_pins( &mut self, pins: TlsServerCertPins, ) -> &mut TlsClientConfig
boring only.Require the server leaf certificate to match an applicable pin set.
With ServerVerifyMode::Auto, normal certificate verification must
also succeed. With ServerVerifyMode::Disable, applicable pins are
the only certificate check.
pub fn with_server_cert_chain_policy(
self,
policy: impl Into<DynTlsServerCertChainPolicy>,
) -> TlsClientConfig
Available on crate feature boring only.
pub fn with_server_cert_chain_policy( self, policy: impl Into<DynTlsServerCertChainPolicy>, ) -> TlsClientConfig
boring only.Reject server certificate chains that policy refuses.
Enforced with every trust source and also with
ServerVerifyMode::Disable. Without verification the policy only
sees the chain the server chose to present, so it cannot stop an
attacker who presents another. Resumed sessions are re-checked by
the BoringSSL backend only. See [TlsServerCertChainPolicy].
Replaces any previously configured chain policy. To combine checks,
implement a policy that invokes each check and rejects on any error.
With rustls, adding a policy under Disable also enables handshake
signature verification using the configured crypto provider.
pub fn set_server_cert_chain_policy(
&mut self,
policy: impl Into<DynTlsServerCertChainPolicy>,
) -> &mut TlsClientConfig
Available on crate feature boring only.
pub fn set_server_cert_chain_policy( &mut self, policy: impl Into<DynTlsServerCertChainPolicy>, ) -> &mut TlsClientConfig
boring only.Reject server certificate chains that policy refuses.
Enforced with every trust source and also with
ServerVerifyMode::Disable. Without verification the policy only
sees the chain the server chose to present, so it cannot stop an
attacker who presents another. Resumed sessions are re-checked by
the BoringSSL backend only. See [TlsServerCertChainPolicy].
Replaces any previously configured chain policy. To combine checks,
implement a policy that invokes each check and rejects on any error.
With rustls, adding a policy under Disable also enables handshake
signature verification using the configured crypto provider.
pub fn try_with_server_trust_anchors(
self,
certificates: impl IntoIterator<Item = CertificateDer<'static>>,
) -> Result<TlsClientConfig, Box<dyn Error + Sync + Send>>
Available on crate feature boring only.
pub fn try_with_server_trust_anchors( self, certificates: impl IntoIterator<Item = CertificateDer<'static>>, ) -> Result<TlsClientConfig, Box<dyn Error + Sync + Send>>
boring only.Replace the default server trust anchors with certificates.
The certificates are used only with ServerVerifyMode::Auto,
and a backend-specific verifier or store takes precedence.
pub fn try_set_server_trust_anchors(
&mut self,
certificates: impl IntoIterator<Item = CertificateDer<'static>>,
) -> Result<&mut TlsClientConfig, Box<dyn Error + Sync + Send>>
Available on crate feature boring only.
pub fn try_set_server_trust_anchors( &mut self, certificates: impl IntoIterator<Item = CertificateDer<'static>>, ) -> Result<&mut TlsClientConfig, Box<dyn Error + Sync + Send>>
boring only.Replace the default server trust anchors with certificates.
The certificates are used only with ServerVerifyMode::Auto,
and a backend-specific verifier or store takes precedence.
pub fn with_server_trust(self, trust: TlsServerTrust) -> TlsClientConfig
Available on crate feature boring only.
pub fn with_server_trust(self, trust: TlsServerTrust) -> TlsClientConfig
boring only.Set the complete server trust policy.
pub fn set_server_trust(
&mut self,
trust: TlsServerTrust,
) -> &mut TlsClientConfig
Available on crate feature boring only.
pub fn set_server_trust( &mut self, trust: TlsServerTrust, ) -> &mut TlsClientConfig
boring only.Set the complete server trust policy.
pub fn try_with_extra_server_trust_anchors(
self,
certificates: impl IntoIterator<Item = CertificateDer<'static>>,
) -> Result<TlsClientConfig, Box<dyn Error + Sync + Send>>
Available on crate feature boring only.
pub fn try_with_extra_server_trust_anchors( self, certificates: impl IntoIterator<Item = CertificateDer<'static>>, ) -> Result<TlsClientConfig, Box<dyn Error + Sync + Send>>
boring only.Add certificates to the configured server trust roots.
Without another trust setting, the certificates extend the default
native roots. This composes with Self::with_webpki_roots.
pub fn try_set_extra_server_trust_anchors(
&mut self,
certificates: impl IntoIterator<Item = CertificateDer<'static>>,
) -> Result<&mut TlsClientConfig, Box<dyn Error + Sync + Send>>
Available on crate feature boring only.
pub fn try_set_extra_server_trust_anchors( &mut self, certificates: impl IntoIterator<Item = CertificateDer<'static>>, ) -> Result<&mut TlsClientConfig, Box<dyn Error + Sync + Send>>
boring only.Add certificates to the configured server trust roots.
Without another trust setting, the certificates extend the default
native roots. This composes with Self::with_webpki_roots.
pub fn with_webpki_roots(self) -> TlsClientConfig
Available on crate feature boring only.
pub fn with_webpki_roots(self) -> TlsClientConfig
boring only.Use Rama’s bundled Mozilla (CCADB) roots instead of native roots.
Replaces custom trust anchors; additional trust anchors are retained.
pub fn set_webpki_roots(&mut self) -> &mut TlsClientConfig
Available on crate feature boring only.
pub fn set_webpki_roots(&mut self) -> &mut TlsClientConfig
boring only.Use Rama’s bundled Mozilla (CCADB) roots instead of native roots.
Replaces custom trust anchors; additional trust anchors are retained.
pub fn with_platform_verifier(self) -> TlsClientConfig
Available on crate feature boring only.
pub fn with_platform_verifier(self) -> TlsClientConfig
boring only.Let the operating system verify server certificates.
Replaces custom trust anchors; additional trust anchors are
retained. See ServerTrustSource::Platform.
pub fn set_platform_verifier(&mut self) -> &mut TlsClientConfig
Available on crate feature boring only.
pub fn set_platform_verifier(&mut self) -> &mut TlsClientConfig
boring only.Let the operating system verify server certificates.
Replaces custom trust anchors; additional trust anchors are
retained. See ServerTrustSource::Platform.
pub fn with_supported_versions(
self,
versions: Vec<ProtocolVersion>,
) -> TlsClientConfig
Available on crate feature boring only.
pub fn with_supported_versions( self, versions: Vec<ProtocolVersion>, ) -> TlsClientConfig
boring only.Set the supported protocol versions.
pub fn set_supported_versions(
&mut self,
versions: Vec<ProtocolVersion>,
) -> &mut TlsClientConfig
Available on crate feature boring only.
pub fn set_supported_versions( &mut self, versions: Vec<ProtocolVersion>, ) -> &mut TlsClientConfig
boring only.Set the supported protocol versions.
pub fn with_keylog(self, intent: KeyLogIntent) -> TlsClientConfig
Available on crate feature boring only.
pub fn with_keylog(self, intent: KeyLogIntent) -> TlsClientConfig
boring only.Set the keylog intent.
pub fn set_keylog(&mut self, intent: KeyLogIntent) -> &mut TlsClientConfig
Available on crate feature boring only.
pub fn set_keylog(&mut self, intent: KeyLogIntent) -> &mut TlsClientConfig
boring only.Set the keylog intent.
pub fn with_client_auth(self, client_auth: ClientAuth) -> TlsClientConfig
Available on crate feature boring only.
pub fn with_client_auth(self, client_auth: ClientAuth) -> TlsClientConfig
boring only.Set the client certificate authentication material (mTLS).
pub fn set_client_auth(
&mut self,
client_auth: ClientAuth,
) -> &mut TlsClientConfig
Available on crate feature boring only.
pub fn set_client_auth( &mut self, client_auth: ClientAuth, ) -> &mut TlsClientConfig
boring only.Set the client certificate authentication material (mTLS).
pub fn with_store_server_cert_chain(self, store: bool) -> TlsClientConfig
Available on crate feature boring only.
pub fn with_store_server_cert_chain(self, store: bool) -> TlsClientConfig
boring only.Set whether the peer certificate chain is captured.
pub fn set_store_server_cert_chain(
&mut self,
store: bool,
) -> &mut TlsClientConfig
Available on crate feature boring only.
pub fn set_store_server_cert_chain( &mut self, store: bool, ) -> &mut TlsClientConfig
boring only.Set whether the peer certificate chain is captured.
pub fn with_store_server_hello(self, store: bool) -> TlsClientConfig
Available on crate feature boring only.
pub fn with_store_server_hello(self, store: bool) -> TlsClientConfig
boring only.pub fn set_store_server_hello(&mut self, store: bool) -> &mut TlsClientConfig
Available on crate feature boring only.
pub fn set_store_server_hello(&mut self, store: bool) -> &mut TlsClientConfig
boring only.pub fn with_overrides(self, overrides: &Extensions) -> TlsClientConfig
Available on crate feature boring only.
pub fn with_overrides(self, overrides: &Extensions) -> TlsClientConfig
boring only.Layer request-specific TLS extensions over this configuration. Parent scopes are preserved and subsequent setters remain local to the result.
pub fn set_overrides(&mut self, overrides: &Extensions) -> &mut TlsClientConfig
Available on crate feature boring only.
pub fn set_overrides(&mut self, overrides: &Extensions) -> &mut TlsClientConfig
boring only.Layer request-specific TLS extensions over this configuration. Parent scopes are preserved and subsequent setters remain local to the result.
pub fn as_extensions(&self) -> &Extensions
boring only.Trait Implementations§
§impl BoringClientConfigExt for TlsClientConfig
impl BoringClientConfigExt for TlsClientConfig
§fn new_from_client_hello(hello: &ClientHello) -> TlsClientConfig
fn new_from_client_hello(hello: &ClientHello) -> TlsClientConfig
ClientHello§fn with_mimic_client_hello(self, hello: &ClientHello) -> TlsClientConfig
fn with_mimic_client_hello(self, hello: &ClientHello) -> TlsClientConfig
ClientHello onto this config.§fn set_mimic_client_hello(
&mut self,
hello: &ClientHello,
) -> &mut TlsClientConfig
fn set_mimic_client_hello( &mut self, hello: &ClientHello, ) -> &mut TlsClientConfig
ClientHello onto this config.§fn with_cipher_suites(self, suites: Vec<CipherSuite>) -> TlsClientConfig
fn with_cipher_suites(self, suites: Vec<CipherSuite>) -> TlsClientConfig
§fn set_cipher_suites(
&mut self,
suites: Vec<CipherSuite>,
) -> &mut TlsClientConfig
fn set_cipher_suites( &mut self, suites: Vec<CipherSuite>, ) -> &mut TlsClientConfig
§fn with_supported_groups(self, groups: Vec<SupportedGroup>) -> TlsClientConfig
fn with_supported_groups(self, groups: Vec<SupportedGroup>) -> TlsClientConfig
§fn set_supported_groups(
&mut self,
groups: Vec<SupportedGroup>,
) -> &mut TlsClientConfig
fn set_supported_groups( &mut self, groups: Vec<SupportedGroup>, ) -> &mut TlsClientConfig
§fn with_signature_schemes(
self,
schemes: Vec<SignatureScheme>,
) -> TlsClientConfig
fn with_signature_schemes( self, schemes: Vec<SignatureScheme>, ) -> TlsClientConfig
§fn set_signature_schemes(
&mut self,
schemes: Vec<SignatureScheme>,
) -> &mut TlsClientConfig
fn set_signature_schemes( &mut self, schemes: Vec<SignatureScheme>, ) -> &mut TlsClientConfig
§fn with_grease(self, enabled: bool) -> TlsClientConfig
fn with_grease(self, enabled: bool) -> TlsClientConfig
§fn set_grease(&mut self, enabled: bool) -> &mut TlsClientConfig
fn set_grease(&mut self, enabled: bool) -> &mut TlsClientConfig
§fn with_grease_signature_schemes(self, enabled: bool) -> TlsClientConfig
fn with_grease_signature_schemes(self, enabled: bool) -> TlsClientConfig
§fn set_grease_signature_schemes(
&mut self,
enabled: bool,
) -> &mut TlsClientConfig
fn set_grease_signature_schemes( &mut self, enabled: bool, ) -> &mut TlsClientConfig
§fn with_alps(
self,
protocols: Vec<ApplicationProtocol>,
new_codepoint: bool,
) -> TlsClientConfig
fn with_alps( self, protocols: Vec<ApplicationProtocol>, new_codepoint: bool, ) -> TlsClientConfig
§fn set_alps(
&mut self,
protocols: Vec<ApplicationProtocol>,
new_codepoint: bool,
) -> &mut TlsClientConfig
fn set_alps( &mut self, protocols: Vec<ApplicationProtocol>, new_codepoint: bool, ) -> &mut TlsClientConfig
§fn with_extension_order(self, order: Vec<ExtensionId>) -> TlsClientConfig
fn with_extension_order(self, order: Vec<ExtensionId>) -> TlsClientConfig
§fn set_extension_order(
&mut self,
order: Vec<ExtensionId>,
) -> &mut TlsClientConfig
fn set_extension_order( &mut self, order: Vec<ExtensionId>, ) -> &mut TlsClientConfig
§fn with_permute_extensions(self, enabled: bool) -> TlsClientConfig
fn with_permute_extensions(self, enabled: bool) -> TlsClientConfig
§fn set_permute_extensions(&mut self, enabled: bool) -> &mut TlsClientConfig
fn set_permute_extensions(&mut self, enabled: bool) -> &mut TlsClientConfig
§fn with_unknown_values(self, policy: UnknownValues) -> TlsClientConfig
fn with_unknown_values(self, policy: UnknownValues) -> TlsClientConfig
UnknownValues::Preserve: a server that selects or answers one fails the
handshake), or fail (UnknownValues::Forbid).§fn set_unknown_values(&mut self, policy: UnknownValues) -> &mut TlsClientConfig
fn set_unknown_values(&mut self, policy: UnknownValues) -> &mut TlsClientConfig
UnknownValues::Preserve: a server that selects or answers one fails the
handshake), or fail (UnknownValues::Forbid).§fn with_grease_values(self, values: GreaseValues) -> TlsClientConfig
fn with_grease_values(self, values: GreaseValues) -> TlsClientConfig
GreaseValues::Pinned, for a relay that
mirrors its client).§fn set_grease_values(&mut self, values: GreaseValues) -> &mut TlsClientConfig
fn set_grease_values(&mut self, values: GreaseValues) -> &mut TlsClientConfig
GreaseValues::Pinned, for a relay that
mirrors its client).§fn with_client_hello_padding(self, padding: Padding) -> TlsClientConfig
fn with_client_hello_padding(self, padding: Padding) -> TlsClientConfig
§fn set_client_hello_padding(&mut self, padding: Padding) -> &mut TlsClientConfig
fn set_client_hello_padding(&mut self, padding: Padding) -> &mut TlsClientConfig
§fn with_legacy_extensions(self, enabled: bool) -> TlsClientConfig
fn with_legacy_extensions(self, enabled: bool) -> TlsClientConfig
§fn set_legacy_extensions(&mut self, enabled: bool) -> &mut TlsClientConfig
fn set_legacy_extensions(&mut self, enabled: bool) -> &mut TlsClientConfig
§fn with_extension_presence(
self,
presence: BoringExtensionPresence,
) -> TlsClientConfig
fn with_extension_presence( self, presence: BoringExtensionPresence, ) -> TlsClientConfig
§fn set_extension_presence(
&mut self,
presence: BoringExtensionPresence,
) -> &mut TlsClientConfig
fn set_extension_presence( &mut self, presence: BoringExtensionPresence, ) -> &mut TlsClientConfig
§fn with_extension_bodies(
self,
bodies: Vec<(ExtensionId, Bytes)>,
) -> TlsClientConfig
fn with_extension_bodies( self, bodies: Vec<(ExtensionId, Bytes)>, ) -> TlsClientConfig
§fn set_extension_bodies(
&mut self,
bodies: Vec<(ExtensionId, Bytes)>,
) -> &mut TlsClientConfig
fn set_extension_bodies( &mut self, bodies: Vec<(ExtensionId, Bytes)>, ) -> &mut TlsClientConfig
§fn with_requested_trust_anchors(
self,
anchors: BoringRequestedTrustAnchors,
) -> TlsClientConfig
fn with_requested_trust_anchors( self, anchors: BoringRequestedTrustAnchors, ) -> TlsClientConfig
§fn set_requested_trust_anchors(
&mut self,
anchors: BoringRequestedTrustAnchors,
) -> &mut TlsClientConfig
fn set_requested_trust_anchors( &mut self, anchors: BoringRequestedTrustAnchors, ) -> &mut TlsClientConfig
§fn with_cert_compression(
self,
algorithms: Vec<CertificateCompressionAlgorithm>,
) -> TlsClientConfig
fn with_cert_compression( self, algorithms: Vec<CertificateCompressionAlgorithm>, ) -> TlsClientConfig
§fn set_cert_compression(
&mut self,
algorithms: Vec<CertificateCompressionAlgorithm>,
) -> &mut TlsClientConfig
fn set_cert_compression( &mut self, algorithms: Vec<CertificateCompressionAlgorithm>, ) -> &mut TlsClientConfig
§fn with_delegated_credentials(
self,
schemes: Vec<SignatureScheme>,
) -> TlsClientConfig
fn with_delegated_credentials( self, schemes: Vec<SignatureScheme>, ) -> TlsClientConfig
§fn set_delegated_credentials(
&mut self,
schemes: Vec<SignatureScheme>,
) -> &mut TlsClientConfig
fn set_delegated_credentials( &mut self, schemes: Vec<SignatureScheme>, ) -> &mut TlsClientConfig
§fn with_record_size_limit(self, limit: u16) -> TlsClientConfig
fn with_record_size_limit(self, limit: u16) -> TlsClientConfig
record_size_limit value; 0 omits the extension.§fn set_record_size_limit(&mut self, limit: u16) -> &mut TlsClientConfig
fn set_record_size_limit(&mut self, limit: u16) -> &mut TlsClientConfig
record_size_limit value; 0 omits the extension.§fn with_server_padding_request(
self,
bytes: impl Into<Option<u16>>,
) -> TlsClientConfig
fn with_server_padding_request( self, bytes: impl Into<Option<u16>>, ) -> TlsClientConfig
None omits it; Some(0) explicitly requests zero bytes. This does
not require the server to respond or change certificate verification.§fn set_server_padding_request(
&mut self,
bytes: impl Into<Option<u16>>,
) -> &mut TlsClientConfig
fn set_server_padding_request( &mut self, bytes: impl Into<Option<u16>>, ) -> &mut TlsClientConfig
None omits it; Some(0) explicitly requests zero bytes. This does
not require the server to respond or change certificate verification.§fn with_encrypted_client_hello(self, enabled: bool) -> TlsClientConfig
fn with_encrypted_client_hello(self, enabled: bool) -> TlsClientConfig
§fn set_encrypted_client_hello(&mut self, enabled: bool) -> &mut TlsClientConfig
fn set_encrypted_client_hello(&mut self, enabled: bool) -> &mut TlsClientConfig
§fn with_ech_grease(self, shape: EchGrease) -> TlsClientConfig
fn with_ech_grease(self, shape: EchGrease) -> TlsClientConfig
encrypted_client_hello; invalid shapes fail when building a connector.§fn set_ech_grease(&mut self, shape: EchGrease) -> &mut TlsClientConfig
fn set_ech_grease(&mut self, shape: EchGrease) -> &mut TlsClientConfig
encrypted_client_hello; invalid shapes fail when building a connector.§fn with_ocsp_stapling(self, enabled: bool) -> TlsClientConfig
fn with_ocsp_stapling(self, enabled: bool) -> TlsClientConfig
§fn set_ocsp_stapling(&mut self, enabled: bool) -> &mut TlsClientConfig
fn set_ocsp_stapling(&mut self, enabled: bool) -> &mut TlsClientConfig
§fn with_signed_cert_timestamps(self, enabled: bool) -> TlsClientConfig
fn with_signed_cert_timestamps(self, enabled: bool) -> TlsClientConfig
§fn set_signed_cert_timestamps(&mut self, enabled: bool) -> &mut TlsClientConfig
fn set_signed_cert_timestamps(&mut self, enabled: bool) -> &mut TlsClientConfig
§fn with_tls12_session_tickets(self, enabled: bool) -> TlsClientConfig
fn with_tls12_session_tickets(self, enabled: bool) -> TlsClientConfig
session_ticket extension (default: enabled). Read more§fn set_tls12_session_tickets(&mut self, enabled: bool) -> &mut TlsClientConfig
fn set_tls12_session_tickets(&mut self, enabled: bool) -> &mut TlsClientConfig
session_ticket extension (default: enabled). Read more§fn with_server_verify_cert_store(self, store: Arc<X509Store>) -> TlsClientConfig
fn with_server_verify_cert_store(self, store: Arc<X509Store>) -> TlsClientConfig
§fn set_server_verify_cert_store(
&mut self,
store: Arc<X509Store>,
) -> &mut TlsClientConfig
fn set_server_verify_cert_store( &mut self, store: Arc<X509Store>, ) -> &mut TlsClientConfig
§fn with_min_version(self, version: ProtocolVersion) -> TlsClientConfig
fn with_min_version(self, version: ProtocolVersion) -> TlsClientConfig
§fn set_min_version(&mut self, version: ProtocolVersion) -> &mut TlsClientConfig
fn set_min_version(&mut self, version: ProtocolVersion) -> &mut TlsClientConfig
§fn with_max_version(self, version: ProtocolVersion) -> TlsClientConfig
fn with_max_version(self, version: ProtocolVersion) -> TlsClientConfig
§fn set_max_version(&mut self, version: ProtocolVersion) -> &mut TlsClientConfig
fn set_max_version(&mut self, version: ProtocolVersion) -> &mut TlsClientConfig
§impl Clone for TlsClientConfig
impl Clone for TlsClientConfig
§fn clone(&self) -> TlsClientConfig
fn clone(&self) -> TlsClientConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for TlsClientConfig
impl Debug for TlsClientConfig
§impl Default for TlsClientConfig
impl Default for TlsClientConfig
§fn default() -> TlsClientConfig
fn default() -> TlsClientConfig
§impl RamaFrom<&ClientHello, RamaTlsBoringCrateMarker> for TlsClientConfig
impl RamaFrom<&ClientHello, RamaTlsBoringCrateMarker> for TlsClientConfig
fn rama_from(hello: &ClientHello) -> TlsClientConfig
§impl RamaTryFrom<&TlsClientConfig, RamaTlsRustlsCrateMarker> for ClientConfig
impl RamaTryFrom<&TlsClientConfig, RamaTlsRustlsCrateMarker> for ClientConfig
type Error = Box<dyn Error + Sync + Send>
fn rama_try_from( value: &TlsClientConfig, ) -> Result<ClientConfig, <ClientConfig as RamaTryFrom<&TlsClientConfig, RamaTlsRustlsCrateMarker>>::Error>
§impl RamaTryFrom<TlsClientConfig, RamaTlsRustlsCrateMarker> for ClientConfig
impl RamaTryFrom<TlsClientConfig, RamaTlsRustlsCrateMarker> for ClientConfig
type Error = Box<dyn Error + Sync + Send>
fn rama_try_from( value: TlsClientConfig, ) -> Result<ClientConfig, <ClientConfig as RamaTryFrom<TlsClientConfig, RamaTlsRustlsCrateMarker>>::Error>
§impl RustlsClientConfigExt for TlsClientConfig
impl RustlsClientConfigExt for TlsClientConfig
§fn with_cert_verifier(
self,
verifier: Arc<dyn ServerCertVerifier>,
) -> TlsClientConfig
fn with_cert_verifier( self, verifier: Arc<dyn ServerCertVerifier>, ) -> TlsClientConfig
§fn set_cert_verifier(
&mut self,
verifier: Arc<dyn ServerCertVerifier>,
) -> &mut TlsClientConfig
fn set_cert_verifier( &mut self, verifier: Arc<dyn ServerCertVerifier>, ) -> &mut TlsClientConfig
§fn with_modify_rustls_config(
self,
modify: impl Fn(ClientConfig) -> Result<ClientConfig, Box<dyn Error + Sync + Send>> + Send + Sync + 'static,
) -> TlsClientConfig
fn with_modify_rustls_config( self, modify: impl Fn(ClientConfig) -> Result<ClientConfig, Box<dyn Error + Sync + Send>> + Send + Sync + 'static, ) -> TlsClientConfig
ClientConfig build: see ModifyRustlsClientConfig.§fn set_modify_rustls_config(
&mut self,
modify: impl Fn(ClientConfig) -> Result<ClientConfig, Box<dyn Error + Sync + Send>> + Send + Sync + 'static,
) -> &mut TlsClientConfig
fn set_modify_rustls_config( &mut self, modify: impl Fn(ClientConfig) -> Result<ClientConfig, Box<dyn Error + Sync + Send>> + Send + Sync + 'static, ) -> &mut TlsClientConfig
ClientConfig build: see ModifyRustlsClientConfig.§impl TryFrom<&TlsClientConfig> for TlsConnectorData
impl TryFrom<&TlsClientConfig> for TlsConnectorData
§fn try_from(
value: &TlsClientConfig,
) -> Result<TlsConnectorData, <TlsConnectorData as TryFrom<&TlsClientConfig>>::Error>
fn try_from( value: &TlsClientConfig, ) -> Result<TlsConnectorData, <TlsConnectorData as TryFrom<&TlsClientConfig>>::Error>
Build TlsConnectorData from a TlsClientConfig by gathering its
pieces (the same path the connector uses internally).
§impl TryFrom<&TlsClientConfig> for TlsConnectorContextBuilder
impl TryFrom<&TlsClientConfig> for TlsConnectorContextBuilder
§fn try_from(
value: &TlsClientConfig,
) -> Result<TlsConnectorContextBuilder, <TlsConnectorContextBuilder as TryFrom<&TlsClientConfig>>::Error>
fn try_from( value: &TlsClientConfig, ) -> Result<TlsConnectorContextBuilder, <TlsConnectorContextBuilder as TryFrom<&TlsClientConfig>>::Error>
Auto Trait Implementations§
impl !RefUnwindSafe for TlsClientConfig
impl !UnwindSafe for TlsClientConfig
impl Freeze for TlsClientConfig
impl Send for TlsClientConfig
impl Sync for TlsClientConfig
impl Unpin for TlsClientConfig
impl UnsafeUnpin for TlsClientConfig
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a rama_grpc::Request§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more