pub struct Resolver<E: EntryKey> { /* private fields */ }Expand description
rustls::server::ResolvesServerCert implementation backed by an
ArcSwap<CertStore<E>>. Reads the current store on every
handshake — a populator-driven swap is observed by the next
ClientHello, never mid-connection (TLS does not permit that).
We do not delegate to rustls’s built-in
rustls::server::ResolvesServerCertUsingSni because it returns
None (handshake failure) on unmatched SNI with no built-in
fallback hook; this resolver uses CertStore::default as the
explicit no-SNI fallback.
Implementations§
Trait Implementations§
Source§impl<E: EntryKey + Debug + Send + Sync + 'static> ResolvesServerCert for Resolver<E>
impl<E: EntryKey + Debug + Send + Sync + 'static> ResolvesServerCert for Resolver<E>
Source§fn resolve(&self, hello: ClientHello<'_>) -> Option<Arc<CertifiedKey>>
fn resolve(&self, hello: ClientHello<'_>) -> Option<Arc<CertifiedKey>>
Choose a certificate chain and matching key given simplified
ClientHello information. Read more
Source§fn only_raw_public_keys(&self) -> bool
fn only_raw_public_keys(&self) -> bool
Return true when the server only supports raw public keys.
Auto Trait Implementations§
impl<E> Freeze for Resolver<E>
impl<E> RefUnwindSafe for Resolver<E>where
E: RefUnwindSafe,
impl<E> Send for Resolver<E>
impl<E> Sync for Resolver<E>
impl<E> Unpin for Resolver<E>
impl<E> UnsafeUnpin for Resolver<E>
impl<E> UnwindSafe for Resolver<E>where
E: RefUnwindSafe,
Blanket Implementations§
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