#[derive(Debug, thiserror::Error)]
pub enum ValidationError {
#[error("Invalid ID token header: {0}")]
InvalidHeader(jsonwebtoken::errors::Error),
#[error("`kid` header is missing")]
MissingKeyId,
#[error("Key is not found")]
KeyNotFound,
#[error("Missing JWK `alg` parameter")]
MissingJwkAlgParameter,
#[error("Unsupported JWK algorithm")]
UnsupportedJwkAlgorithm,
#[error("Invalid JWK: {0}")]
InvalidKey(jsonwebtoken::errors::Error),
#[error("Invalid ID token: {0}")]
InvalidIdToken(jsonwebtoken::errors::Error),
#[error("ID token verification failed: {0}")]
ValidationFailed(jsonwebtoken::errors::Error),
#[error("Unclassified error: {0}")]
Unknown(jsonwebtoken::errors::Error),
}