1use thiserror::Error;
2
3#[derive(Debug, Error)]
4pub enum SignError {
5 #[error("DER encoding error: {0}")]
6 Der(#[from] der::Error),
7
8 #[error("OCSP builder error: {0}")]
9 OcspBuilder(String),
10
11 #[error("signing error: {0}")]
12 Signing(String),
13
14 #[error("CRL parse error: {0}")]
15 CrlParse(String),
16
17 #[error("bundle build error: {0}")]
18 Bundle(#[from] ahu::AhuError),
19
20 #[error("PKCS#11 error: {0}")]
21 Pkcs11(String),
22
23 #[error("key loading error: {0}")]
24 KeyLoad(String),
25
26 #[error("CMS seal error: {0}")]
27 Seal(String),
28
29 #[error("verification error: {0}")]
30 Verify(String),
31
32 #[error("no embedded responder certificate — cannot extract public key")]
33 NoCert,
34
35 #[error("LDAP error: {0}")]
36 Ldap(String),
37
38 #[error("configuration error: {0}")]
39 Config(String),
40
41 #[error("I/O error: {0}")]
42 Io(#[from] std::io::Error),
43}
44
45pub type Result<T> = std::result::Result<T, SignError>;
46
47impl From<x509_ocsp::builder::Error> for SignError {
48 fn from(e: x509_ocsp::builder::Error) -> Self {
49 SignError::OcspBuilder(e.to_string())
50 }
51}