Struct RustlsTlsProvider
pub struct RustlsTlsProvider { /* private fields */ }Available on crate feature
quic and crate feature rustls and crate feature std and (crate features aws-lc or ring) only.Expand description
Rustls QUIC configuration factory with an explicitly supplied cryptographic provider.
The adapter still requires the ring or aws-lc feature for its packet crypto.
Supplying a provider here does not install or use Rustls’s process-wide default.
Implementations§
§impl RustlsTlsProvider
impl RustlsTlsProvider
pub fn new(crypto: Arc<CryptoProvider>) -> RustlsTlsProvider
pub fn new(crypto: Arc<CryptoProvider>) -> RustlsTlsProvider
Select Rustls’s native cryptographic provider for this adapter.
This backend-specific constructor intentionally accepts the Rustls type
re-exported by rama_tls_rustls::dep::rustls. Backend-neutral callers use
default_tls_provider or QuicClientConfigProvider instead.
Trait Implementations§
§impl Clone for RustlsTlsProvider
impl Clone for RustlsTlsProvider
§fn clone(&self) -> RustlsTlsProvider
fn clone(&self) -> RustlsTlsProvider
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 more§impl Debug for RustlsTlsProvider
impl Debug for RustlsTlsProvider
§impl KeyProvider for RustlsTlsProvider
impl KeyProvider for RustlsTlsProvider
§fn initial_keys(
&self,
version: Version,
dcid: &[u8],
side: Side,
) -> Result<InitialKeys<<RustlsTlsProvider as KeyProvider>::Header, <RustlsTlsProvider as KeyProvider>::Packet>, CaptureError>
fn initial_keys( &self, version: Version, dcid: &[u8], side: Side, ) -> Result<InitialKeys<<RustlsTlsProvider as KeyProvider>::Header, <RustlsTlsProvider 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 RustlsTlsProvider
impl QuicClientConfigProvider for RustlsTlsProvider
§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.§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 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
§impl QuicServerConfigProvider for RustlsTlsProvider
impl QuicServerConfigProvider for RustlsTlsProvider
fn server_config( &self, config: &TlsServerConfig, options: TlsOptions, ) -> Result<ServerConfig, TlsConfigError>
§impl TlsClientConfigProvider for RustlsTlsProvider
impl TlsClientConfigProvider for RustlsTlsProvider
§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 !RefUnwindSafe for RustlsTlsProvider
impl !UnwindSafe for RustlsTlsProvider
impl Freeze for RustlsTlsProvider
impl Send for RustlsTlsProvider
impl Sync for RustlsTlsProvider
impl Unpin for RustlsTlsProvider
impl UnsafeUnpin for RustlsTlsProvider
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