pub struct OcspRevocationChecker { /* private fields */ }Expand description
OCSP-based certificate revocation checker with caching
Implements the RevocationChecker trait with real OCSP protocol support:
- Builds DER-encoded OCSP requests per RFC 6960
- Sends requests via HTTP/1.1 POST to OCSP responders
- Parses DER-encoded OCSP responses
- Caches results with configurable TTL
- Fail-open: returns
Unknownon any error
Implementations§
Source§impl OcspRevocationChecker
impl OcspRevocationChecker
Sourcepub fn with_responder_url(self, url: impl Into<String>) -> Self
pub fn with_responder_url(self, url: impl Into<String>) -> Self
Set the OCSP responder URL (overrides certificate AIA extension)
Sourcepub fn with_cache_ttl(self, ttl: Duration) -> Self
pub fn with_cache_ttl(self, ttl: Duration) -> Self
Set cache TTL
Sourcepub fn with_timeout(self, timeout: Duration) -> Self
pub fn with_timeout(self, timeout: Duration) -> Self
Set request timeout
Sourcepub fn get_cached(&self, fingerprint: &str) -> Option<RevocationStatus>
pub fn get_cached(&self, fingerprint: &str) -> Option<RevocationStatus>
Get cached revocation status for a certificate fingerprint
Sourcepub fn cache_status(&self, fingerprint: String, status: RevocationStatus)
pub fn cache_status(&self, fingerprint: String, status: RevocationStatus)
Cache a revocation status for a certificate fingerprint
Sourcepub fn clear_cache(&self)
pub fn clear_cache(&self)
Clear the entire cache
Sourcepub fn cache_size(&self) -> usize
pub fn cache_size(&self) -> usize
Get the number of cached entries
Sourcepub fn check_revocation(
&self,
cert: &CertificateDer<'_>,
) -> NetResult<RevocationStatus>
pub fn check_revocation( &self, cert: &CertificateDer<'_>, ) -> NetResult<RevocationStatus>
Synchronous check: cache-only, no network I/O
Sourcepub fn check_revocation_async<'a>(
&'a self,
cert: &'a CertificateDer<'_>,
) -> Pin<Box<dyn Future<Output = NetResult<RevocationStatus>> + Send + 'a>>
pub fn check_revocation_async<'a>( &'a self, cert: &'a CertificateDer<'_>, ) -> Pin<Box<dyn Future<Output = NetResult<RevocationStatus>> + Send + 'a>>
Asynchronous check: cache first, then network OCSP query
Trait Implementations§
Source§impl Debug for OcspRevocationChecker
impl Debug for OcspRevocationChecker
Source§impl Default for OcspRevocationChecker
impl Default for OcspRevocationChecker
Source§impl RevocationChecker for OcspRevocationChecker
impl RevocationChecker for OcspRevocationChecker
Source§fn check_revocation(
&self,
cert: &CertificateDer<'_>,
) -> NetResult<RevocationStatus>
fn check_revocation( &self, cert: &CertificateDer<'_>, ) -> NetResult<RevocationStatus>
Check if a certificate has been revoked
Source§fn check_revocation_async(
&self,
cert: &CertificateDer<'_>,
) -> Pin<Box<dyn Future<Output = NetResult<RevocationStatus>> + Send + '_>>
fn check_revocation_async( &self, cert: &CertificateDer<'_>, ) -> Pin<Box<dyn Future<Output = NetResult<RevocationStatus>> + Send + '_>>
Check if a certificate has been revoked asynchronously
Auto Trait Implementations§
impl Freeze for OcspRevocationChecker
impl !RefUnwindSafe for OcspRevocationChecker
impl Send for OcspRevocationChecker
impl Sync for OcspRevocationChecker
impl Unpin for OcspRevocationChecker
impl UnsafeUnpin for OcspRevocationChecker
impl !UnwindSafe for OcspRevocationChecker
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.