#![forbid(unsafe_code)]
#![deny(clippy::all)]
#![warn(missing_docs, clippy::pedantic)]
#![allow(clippy::missing_errors_doc, clippy::module_name_repetitions)]
use crate::types;
#[derive(Debug)]
pub enum AttestError {
WebPki(webpki::Error),
InvalidCertChain(webpki::Error),
Nsm(aws_nitro_enclaves_nsm_api::api::Error),
InvalidEndEntityCert,
InvalidCOSESign1Signature,
InvalidCOSESign1Structure,
InvalidDigest,
InvalidModuleId,
InvalidPcr,
InvalidCABundle,
InvalidTimeStamp,
InvalidPubKey,
InvalidBytes,
UnexpectedNsmResponse(types::NsmResponse),
Base64DecodingError(String),
PemDecodingError,
FailedDecodeKeyFromCert,
FailedToParseCert,
MissingUserData,
DifferentUserData,
UnexpectedAttestationDocNonce,
MissingPcr0,
DifferentPcr0,
MissingPcr1,
DifferentPcr1,
MissingPcr2,
DifferentPcr2,
MissingPcr3,
DifferentPcr3,
}
#[derive(Debug)]
pub enum AppProofError {
InvalidSignatureScheme,
InvalidPublicKey(String),
InvalidSigningPublicKeyBytes(String),
FailedSignatureVerification(String),
InvalidSignature(String),
InvalidProofPayload(String),
MissingTimestamp,
InvalidTimestamp(String),
}
#[derive(Debug)]
pub enum BootProofError {
InvalidTimestamp(String),
MissingTimestamp,
}
#[derive(Debug)]
pub enum VerifyError {
InvalidAppProof(String),
InvalidAttestation(String),
InvalidBootProof(String),
DifferentEphemeralKey(String),
DifferentManifest(String),
}
impl From<webpki::Error> for AttestError {
fn from(e: webpki::Error) -> Self {
Self::WebPki(e)
}
}
impl From<aws_nitro_enclaves_nsm_api::api::Error> for AttestError {
fn from(e: aws_nitro_enclaves_nsm_api::api::Error) -> Self {
Self::Nsm(e)
}
}
impl std::fmt::Display for AttestError {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{self:?}")
}
}
impl std::fmt::Display for AppProofError {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{self:?}")
}
}
impl std::fmt::Display for VerifyError {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{self:?}")
}
}
impl std::fmt::Display for BootProofError {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{self:?}")
}
}