pub struct AmdKdsClient { /* private fields */ }Expand description
Client for fetching certificates from AMD KDS.
Implementations§
Source§impl AmdKdsClient
impl AmdKdsClient
Sourcepub fn new(cache_dir: Option<PathBuf>) -> Self
pub fn new(cache_dir: Option<PathBuf>) -> Self
Create a new AMD KDS client.
§Arguments
cache_dir- Optional directory for caching certificates locally. IfNone, certificates are fetched on every request.
Sourcepub async fn fetch_cert_chain(
&self,
chip_id: &str,
tcb: &TcbVersion,
product: &str,
) -> Result<CertificateChain>
pub async fn fetch_cert_chain( &self, chip_id: &str, tcb: &TcbVersion, product: &str, ) -> Result<CertificateChain>
Fetch the complete certificate chain for verifying an SNP report.
Tries the local cache first, then falls back to AMD KDS.
§Arguments
chip_id- Hex-encoded chip ID from the SNP report (128 hex chars)tcb- TCB version from the SNP reportproduct- CPU product name (“Milan” or “Genoa”)
Sourcepub fn product_name(generation: &str) -> &'static str
pub fn product_name(generation: &str) -> &'static str
Get the product name string for AMD KDS.
Auto Trait Implementations§
impl !RefUnwindSafe for AmdKdsClient
impl !UnwindSafe for AmdKdsClient
impl Freeze for AmdKdsClient
impl Send for AmdKdsClient
impl Sync for AmdKdsClient
impl Unpin for AmdKdsClient
impl UnsafeUnpin for AmdKdsClient
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