1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
use thiserror::Error;
#[derive(Debug, Error)]
pub enum Error {
#[error("jwt error")]
JWTError(Option<Box<dyn std::error::Error>>),
#[error("invalid algorithm")]
InvalidAlgorithm,
#[error("invalid signature")]
InvalidSignature,
#[error("invalid claims")]
InvalidClaims,
#[error("invalid claim format")]
InvalidClaimFormat(Box<dyn std::error::Error>),
#[error("invalid jwt format")]
InvalidJWTFormat,
#[error("invalid base64 encoding")]
InvalidBase64Encoding(Box<dyn std::error::Error>),
#[error("missing final attenuation key")]
MissingFinalAttenuationKey,
#[error("invalid attenuation key")]
InvalidAttenuationKey(Box<dyn std::error::Error>),
#[error("invalid envelope key")]
InvalidEnvelopeKey,
#[error("missing key for key id: {0:?}")]
MissingKey(Option<String>),
#[error("malformed jwk for attenuation key")]
MalformedAttenuationKeyJWK,
#[error("invalid key")]
InvalidKey,
}
pub type Result<R> = std::result::Result<R, Error>;