1use thiserror::Error;
2
3pub type Result<T> = std::result::Result<T, IdprovaError>;
5
6#[derive(Debug, Error)]
8pub enum IdprovaError {
9 #[error("key generation failed: {0}")]
11 KeyGeneration(String),
12
13 #[error("signing failed: {0}")]
14 Signing(String),
15
16 #[error("signature verification failed: {0}")]
17 VerificationFailed(String),
18
19 #[error("invalid key material: {0}")]
20 InvalidKey(String),
21
22 #[error("invalid AID identifier: {0}")]
24 InvalidAid(String),
25
26 #[error("AID document validation failed: {0}")]
27 AidValidation(String),
28
29 #[error("AID not found: {0}")]
30 AidNotFound(String),
31
32 #[error("invalid DAT: {0}")]
34 InvalidDat(String),
35
36 #[error("DAT expired")]
37 DatExpired,
38
39 #[error("DAT not yet valid")]
40 DatNotYetValid,
41
42 #[error("DAT revoked: {0}")]
43 DatRevoked(String),
44
45 #[error("scope not permitted: {0}")]
46 ScopeNotPermitted(String),
47
48 #[error("constraint violated: {0}")]
49 ConstraintViolated(String),
50
51 #[error("delegation chain invalid: {0}")]
52 InvalidDelegationChain(String),
53
54 #[error("receipt chain integrity violation at sequence {0}")]
56 ReceiptChainBroken(u64),
57
58 #[error("invalid receipt: {0}")]
59 InvalidReceipt(String),
60
61 #[error("trust verification failed for level {0}: {1}")]
63 TrustVerification(String, String),
64
65 #[error("serialization error: {0}")]
67 Serialization(#[from] serde_json::Error),
68
69 #[error("base64 decode error: {0}")]
71 Base64(#[from] base64::DecodeError),
72
73 #[error("{0}")]
75 Other(String),
76}