1use thiserror::Error;
2
3#[derive(Debug, Error)]
5pub enum Error {
6 #[error("malformed token")]
8 Malformed,
9 #[error("base64url decode failed: {0}")]
11 Base64(String),
12 #[error("json parse failed: {0}")]
14 Json(String),
15 #[error("unsupported or disabled algorithm: {0}")]
17 DisabledAlg(&'static str),
18 #[error("missing kid in header")]
20 MissingKid,
21 #[error("kid not found in JWKS")]
23 KidNotFound,
24 #[error("invalid key material: {0}")]
26 Key(String),
27 #[error("signature verification failed: {0}")]
29 Signature(String),
30 #[error("claim validation failed: {0}")]
32 Claims(String),
33 #[error("internal: {0}")]
35 Internal(String),
36}
37
38pub type Result<T> = std::result::Result<T, Error>;