common_access_token/
error.rs

1//! Error types for the Common Access Token library
2
3use std::io::Error as IoError;
4use thiserror::Error;
5
6/// Errors that can occur when working with Common Access Tokens
7#[derive(Error, Debug)]
8pub enum Error {
9    /// Error during CBOR encoding
10    #[error("CBOR encoding error: {0}")]
11    CborEncode(#[from] minicbor::encode::Error<IoError>),
12
13    /// Error during CBOR encoding with infallible writer
14    #[error("CBOR encoding error: {0}")]
15    CborEncodeInfallible(#[from] minicbor::encode::Error<std::convert::Infallible>),
16
17    /// Error during CBOR decoding
18    #[error("CBOR decode error: {0}")]
19    CborDecode(#[from] minicbor::decode::Error),
20
21    /// Invalid token format
22    #[error("Invalid token format: {0}")]
23    InvalidFormat(String),
24
25    /// Invalid algorithm
26    #[error("Invalid algorithm: {0}")]
27    InvalidAlgorithm(String),
28
29    /// Signature verification failed
30    #[error("Signature verification failed. The token's signature does not match the expected signature")]
31    SignatureVerification,
32
33    /// Missing required claim
34    #[error("Missing required claim: {0}. The token does not contain a required claim")]
35    MissingClaim(String),
36
37    /// Token expired
38    #[error("Token expired. The token's expiration time (exp) is in the past")]
39    Expired,
40
41    /// Token not yet valid
42    #[error("Token not yet valid. The token's not-before time (nbf) is in the future")]
43    NotYetValid,
44
45    /// Invalid issuer
46    #[error("Invalid issuer. The token's issuer (iss) does not match the expected issuer")]
47    InvalidIssuer,
48
49    /// Invalid audience
50    #[error("Invalid audience. The token's audience (aud) does not match the expected audience")]
51    InvalidAudience,
52
53    /// Invalid claim value
54    #[error("Invalid claim value: {0}")]
55    InvalidClaimValue(String),
56
57    /// Invalid URI claim
58    #[error("Invalid URI claim: {0}")]
59    InvalidUriClaim(String),
60
61    /// Invalid method claim
62    #[error("Invalid method claim: {0}")]
63    InvalidMethodClaim(String),
64
65    /// Invalid renewal claim
66    #[error("Invalid renewal claim: {0}")]
67    InvalidRenewalClaim(String),
68
69    /// Token replay violation
70    #[error("Token replay violation: {0}")]
71    ReplayViolation(String),
72
73    /// Other error
74    #[error("Other error: {0}")]
75    Other(String),
76}