1use thiserror::Error;
4
5#[derive(Debug, Error, Clone)]
7#[non_exhaustive]
8pub enum CryptoError {
9 #[error("Invalid DER encoding: {0}")]
11 InvalidDer(String),
12
13 #[error("Certificate parsing failed: {0}")]
15 ParseFailed(String),
16
17 #[error("Invalid fingerprint format: {fingerprint}")]
19 InvalidFingerprint {
20 fingerprint: String,
22 },
23
24 #[error("Missing required certificate extension: {name}")]
26 MissingExtension {
27 name: String,
29 },
30
31 #[error("No common name found in certificate")]
33 NoCommonName,
34
35 #[error("No URI SAN found in certificate")]
37 NoUriSan,
38}
39
40#[derive(Debug, Error, Clone)]
42#[non_exhaustive]
43pub enum ParseError {
44 #[error("Invalid FQDN: {0}")]
46 InvalidFqdn(String),
47
48 #[error("Invalid version format: {0}")]
50 InvalidVersion(String),
51
52 #[error("Invalid ANS name format: {0}")]
54 InvalidAnsName(String),
55
56 #[error("Invalid URL: {0}")]
58 InvalidUrl(String),
59
60 #[error("Missing required field: {0}")]
62 MissingField(String),
63}