tasign 0.2.0

TA ELF signing utilities with CMS/PKCS#7 support
//! Error types for `tasign::x509`.

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>;