extern crate alloc;
use alloc::string::String;
#[derive(Debug)]
pub enum X509Error {
InvalidInput,
InvalidCertificate,
ChainBuildFailed,
SignatureVerificationFailed,
CertificateExpired,
CertificateNotYetValid,
UntrustedRoot,
UnsupportedAlgorithm,
InternalError,
Message(String),
}
impl core::fmt::Display for X509Error {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
match self {
X509Error::InvalidInput => write!(f, "invalid input"),
X509Error::InvalidCertificate => write!(f, "invalid certificate"),
X509Error::ChainBuildFailed => write!(f, "chain build failed"),
X509Error::SignatureVerificationFailed => write!(f, "signature verification failed"),
X509Error::CertificateExpired => write!(f, "certificate expired"),
X509Error::CertificateNotYetValid => write!(f, "certificate not yet valid"),
X509Error::UntrustedRoot => write!(f, "untrusted root"),
X509Error::UnsupportedAlgorithm => write!(f, "unsupported algorithm"),
X509Error::InternalError => write!(f, "internal error"),
X509Error::Message(msg) => write!(f, "{msg}"),
}
}
}
pub type Result<T> = core::result::Result<T, X509Error>;