#[derive(Debug, thiserror::Error)]
#[non_exhaustive]
pub enum CryptoError {
#[error("AES error: {0}")]
Aes(String),
#[error("RSA error: {0}")]
Rsa(String),
#[error("signature error: {0}")]
Signature(String),
#[error("verification error: {0}")]
Verification(String),
#[error("invalid encrypted PDF: {0}")]
InvalidEncryptedPdf(String),
#[error("invalid password: {0}")]
InvalidPassword(String),
#[error("invalid signed PDF: {0}")]
InvalidSignedPdf(String),
#[error("invalid key format: {0}")]
InvalidKey(String),
#[error("invalid certificate: {0}")]
InvalidCertificate(String),
#[error("I/O error: {0}")]
Io(#[from] std::io::Error),
}