pub struct MfrCertCache { /* private fields */ }Expand description
Production mode MFR Ed25519 public key cache
Fetches manufacturer public keys on demand from the AIS endpoint, cache TTL defaults to 1 hour.
Shared across tasks via Arc<MfrCertCache>.
Implementations§
Source§impl MfrCertCache
impl MfrCertCache
pub fn new(ais_endpoint: impl Into<String>) -> Arc<Self> ⓘ
Sourcepub fn get_from_cache(
&self,
manufacturer: &str,
key_id: Option<&str>,
) -> Option<VerifyingKey>
pub fn get_from_cache( &self, manufacturer: &str, key_id: Option<&str>, ) -> Option<VerifyingKey>
Used in RegistryTrust::verify_package synchronous path;
caller must ensure the cache has been warmed via get_or_fetch beforehand.
Sourcepub async fn get_or_fetch(
&self,
manufacturer: &str,
key_id: Option<&str>,
) -> Result<VerifyingKey, HyperError>
pub async fn get_or_fetch( &self, manufacturer: &str, key_id: Option<&str>, ) -> Result<VerifyingKey, HyperError>
Get the Ed25519 verifying key for the specified manufacturer
Reads from cache first (if not expired); on miss, fetches from AIS and updates cache.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for MfrCertCache
impl !RefUnwindSafe for MfrCertCache
impl !UnwindSafe for MfrCertCache
impl Send for MfrCertCache
impl Sync for MfrCertCache
impl Unpin for MfrCertCache
impl UnsafeUnpin for MfrCertCache
Blanket Implementations§
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 more