Struct BoringTlsProvider
pub struct BoringTlsProvider;Available on crate features
boring and quic and std only.Expand description
BoringSSL QUIC configuration factory.
Implementations§
§impl BoringTlsProvider
impl BoringTlsProvider
pub fn prepare_fresh_client_config(
&self,
config: &TlsClientConfig,
peer: Host,
) -> Result<ClientConfig, TlsConfigError>
pub fn prepare_fresh_client_config( &self, config: &TlsClientConfig, peer: Host, ) -> Result<ClientConfig, TlsConfigError>
Prepare the first native TLS session for peer without sending packets.
The first dial consumes the prepared SSL object; address retries create
fresh sibling sessions. All use full handshakes, without reading or
retaining tickets. This configuration belongs to peer and must not be
shared through a cache that omits that identity.
Trait Implementations§
§impl Clone for BoringTlsProvider
impl Clone for BoringTlsProvider
§fn clone(&self) -> BoringTlsProvider
fn clone(&self) -> BoringTlsProvider
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for BoringTlsProvider
§impl Debug for BoringTlsProvider
impl Debug for BoringTlsProvider
§impl Default for BoringTlsProvider
impl Default for BoringTlsProvider
§fn default() -> BoringTlsProvider
fn default() -> BoringTlsProvider
Returns the “default value” for a type. Read more
§impl KeyProvider for BoringTlsProvider
impl KeyProvider for BoringTlsProvider
§fn initial_keys(
&self,
version: Version,
dcid: &[u8],
side: Side,
) -> Result<InitialKeys<<BoringTlsProvider as KeyProvider>::Header, <BoringTlsProvider as KeyProvider>::Packet>, CaptureError>
fn initial_keys( &self, version: Version, dcid: &[u8], side: Side, ) -> Result<InitialKeys<<BoringTlsProvider as KeyProvider>::Header, <BoringTlsProvider as KeyProvider>::Packet>, CaptureError>
Initial keys for
dcid under version, as side opens them: a server opens the client’s
Initials, a client the server’s.§impl QuicClientConfigProvider for BoringTlsProvider
impl QuicClientConfigProvider for BoringTlsProvider
§fn prepare_client_config(
&self,
policy: &TlsClientConfig,
options: TlsOptions,
peer: Host,
handshake: ClientHandshake,
) -> Result<Option<ClientConfig>, TlsConfigError>
fn prepare_client_config( &self, policy: &TlsClientConfig, options: TlsOptions, peer: Host, handshake: ClientHandshake, ) -> Result<Option<ClientConfig>, TlsConfigError>
Prepare peer-bound native TLS state without connection I/O.
Prepared configurations bypass ordinary caches because their first native
session belongs to this peer; retries obtain fresh ephemeral state. Read more
§fn session_defaults(&self) -> Option<Extensions>
fn session_defaults(&self) -> Option<Extensions>
Optional connector-local backend session state shared by sibling configurations.
These extensions hold cache metadata; they must not replace TLS security settings.
The default retains each native configuration’s own session state.
§fn client_config(
&self,
config: &TlsClientConfig,
options: TlsOptions,
) -> Result<ClientConfig, TlsConfigError>
fn client_config( &self, config: &TlsClientConfig, options: TlsOptions, ) -> Result<ClientConfig, TlsConfigError>
Apply the final TLS settings and client handshake policy in
options.
Fresh clients must neither consult nor populate session-ticket stores,
including stores supplied through native configuration hooks.§fn peer_matches_name(
&self,
extensions: &Extensions,
leaf: &CertificateDer<'_>,
name: &Host,
) -> bool
fn peer_matches_name( &self, extensions: &Extensions, leaf: &CertificateDer<'_>, name: &Host, ) -> bool
Whether the peer
leaf of a connection authenticated under the effective
configuration in extensions is also valid for name, including any pins
scoped to it. Providers that cannot tell return false; a pin scoped to name
on an intermediate or root never matches the leaf, so it fails closed.§impl QuicServerConfigProvider for BoringTlsProvider
impl QuicServerConfigProvider for BoringTlsProvider
fn server_config( &self, config: &TlsServerConfig, options: TlsOptions, ) -> Result<ServerConfig, TlsConfigError>
§impl TlsClientConfigProvider for BoringTlsProvider
impl TlsClientConfigProvider for BoringTlsProvider
§fn pool_id(&self, extensions: &Extensions) -> Option<TlsPoolId>
fn pool_id(&self, extensions: &Extensions) -> Option<TlsPoolId>
Identity of request overrides, before connector defaults are applied. Read more
§fn pool_classifier(&self) -> ReuseKey
fn pool_classifier(&self) -> ReuseKey
Identity of
Self::pool_id: providers with equal classifiers must
derive equal pool ids for every request. A provider without state of
its own returns ReuseKey::of::<Self>().§fn authenticates_server(&self, extensions: &Extensions) -> bool
fn authenticates_server(&self, extensions: &Extensions) -> bool
Whether the effective configuration establishes the server identity.
§fn authenticates_origin(&self, extensions: &Extensions, origin: &Host) -> bool
fn authenticates_origin(&self, extensions: &Extensions, origin: &Host) -> bool
Whether this effective policy authenticates the requested HTTP origin. Read more
Auto Trait Implementations§
impl Freeze for BoringTlsProvider
impl RefUnwindSafe for BoringTlsProvider
impl Send for BoringTlsProvider
impl Sync for BoringTlsProvider
impl Unpin for BoringTlsProvider
impl UnsafeUnpin for BoringTlsProvider
impl UnwindSafe for BoringTlsProvider
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
Mutably borrows from an owned value. Read more
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> ⓘ
Converts
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> ⓘ
Converts
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>
Wrap the input message
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>
Create a new
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more