1use serde_json as SerdeError;
2use thiserror::Error;
3
4#[derive(Error, Debug)]
5pub enum Error {
6 #[error("Invalid key format")]
7 InvalidKeyFormat,
8 #[error("Invalid Ecdsa key")]
9 InvalidEcdsaKey,
10 #[error("ASN1 decoder error")]
11 RsaError(#[from] simple_asn1::ASN1DecodeErr),
12 #[error("PEM parser error: {0}")]
13 PemError(#[from] pem::PemError),
14 #[error("Serde decode error")]
15 SerdeEncodeDecodeError(#[from] SerdeError::Error),
16 #[error("Base64 decode error")]
17 Base64EncodeDecodeError(#[from] base64::DecodeError),
18 #[error("Unsupported algorithm")]
19 UnsupportedAlgorithm,
20 #[error("Hmac invalid length")]
21 HmacInvalidLength(#[from] hmac::digest::InvalidLength),
22 #[error("UTF-8 conversion error: {0}")]
23 Utf8Error(#[from] std::str::Utf8Error),
24 #[error("PKCS8 error: {0}")]
25 Pkcs8Error(#[from] rsa::pkcs8::Error),
26 #[error("PKCS1 error: {0}")]
27 Pkcs1Error(#[from] rsa::pkcs1::Error),
28 #[error("RSA error: {0}")]
29 InvalidRsaKeyType(String),
30 #[error("ECDSA error: {0}")]
31 InvalidEcdsaKeyType(#[from] ecdsa::Error),
32 #[error("RSA error: {0}")]
33 InvalidRsaKey(#[from] rsa::errors::Error),
34 #[error("Pkcs8 Spki error: {0}")]
35 Pkcs8SpkiError(#[from] k256::pkcs8::spki::Error),
36 #[error("Expired signature")]
37 ExpiredSignature,
38 #[error("Immature signature")]
39 ImmatureSignature,
40 #[error("Invalid issuer")]
41 InvalidIssuer,
42 #[error("Invalid subject")]
43 InvalidSubject,
44 #[error("Invalid audience")]
45 InvalidAudience,
46 #[error("Invalid algorithm")]
47 InvalidAlgorithm,
48 #[error("Invalid signature")]
49 InvalidSignature,
50 #[error("Invalid claim: {0}")]
51 InvalidClaim(String),
52}