use thiserror::Error;
#[derive(Debug, Error, Clone)]
#[non_exhaustive]
pub enum CryptoError {
#[error("Invalid DER encoding: {0}")]
InvalidDer(String),
#[error("Certificate parsing failed: {0}")]
ParseFailed(String),
#[error("Invalid fingerprint format: {fingerprint}")]
InvalidFingerprint {
fingerprint: String,
},
#[error("Missing required certificate extension: {name}")]
MissingExtension {
name: String,
},
#[error("No common name found in certificate")]
NoCommonName,
#[error("No URI SAN found in certificate")]
NoUriSan,
}
#[derive(Debug, Error, Clone)]
#[non_exhaustive]
pub enum ParseError {
#[error("Invalid FQDN: {0}")]
InvalidFqdn(String),
#[error("Invalid version format: {0}")]
InvalidVersion(String),
#[error("Invalid ANS name format: {0}")]
InvalidAnsName(String),
#[error("Invalid URL: {0}")]
InvalidUrl(String),
#[error("Missing required field: {0}")]
MissingField(String),
}