1use asn1::{ASN1DecodeErr, ASN1EncodeErr};
4use x509_parser::error::X509Error;
5
6#[derive(Debug, thiserror::Error, PartialEq)]
8#[non_exhaustive]
9pub enum CertificateError {
10 #[error("X.509 extension is missing: {0}")]
12 MissingX509Extension(String),
13
14 #[error("unexpected X.509 extension: {0}")]
16 UnexpectedExtension(String),
17
18 #[error("failed decoding chain of DER certificates")]
20 ChainDecode(#[from] ASN1DecodeErr),
21
22 #[error("failed parsing DER certificate")]
24 ParseDer(#[from] ASN1EncodeErr),
25
26 #[error("failed parsing X.509 certificate")]
28 ParseX509Certificate(#[from] X509Error),
29}
30
31#[derive(Debug, thiserror::Error, PartialEq)]
33#[non_exhaustive]
34pub enum PrivateKeyError {
35 #[error("failed decoding PKCS#8 private key")]
37 DecodePkcs8(pkcs8::Error),
38}