tasign 0.2.0

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

extern crate alloc;

use alloc::string::String;

#[derive(Debug)]
pub enum CryptoError {
    InvalidKey,
    InvalidCertificate,
    InvalidInput,
    InvalidLength,
    UnsupportedAlgorithm,
    VerificationFailed,
    InternalError,
    Message(String),
}

impl core::fmt::Display for CryptoError {
    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
        match self {
            CryptoError::InvalidKey => write!(f, "invalid key"),
            CryptoError::InvalidCertificate => write!(f, "invalid certificate"),
            CryptoError::InvalidInput => write!(f, "invalid input"),
            CryptoError::InvalidLength => write!(f, "invalid length"),
            CryptoError::UnsupportedAlgorithm => write!(f, "unsupported algorithm"),
            CryptoError::VerificationFailed => write!(f, "verification failed"),
            CryptoError::InternalError => write!(f, "internal error"),
            CryptoError::Message(msg) => write!(f, "{msg}"),
        }
    }
}

pub type Result<T> = core::result::Result<T, CryptoError>;