Skip to main content

hoike_sign/
error.rs

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}