use thiserror::Error;
#[derive(Debug, Error)]
pub enum DidKeyError {
#[error("not a did:key identifier: {0}")]
NotDidKey(String),
#[error("invalid multibase encoding: {0}")]
InvalidMultibase(String),
#[error("unknown multicodec codec 0x{0:04x}")]
UnknownCodec(u64),
#[error("invalid key length for {codec}: expected {expected}, got {actual}")]
InvalidKeyLength {
codec: &'static str,
expected: usize,
actual: usize,
},
#[error("malformed JWT: {0}")]
MalformedJwt(String),
#[error("invalid JWT header: {0}")]
InvalidHeader(String),
#[error("invalid JWT claims: {0}")]
InvalidClaims(String),
#[error("signature verification failed: {0}")]
BadSignature(String),
#[error("key material parse error: {0}")]
KeyParse(String),
#[error("json: {0}")]
Json(#[from] serde_json::Error),
#[error("base64: {0}")]
Base64(#[from] base64::DecodeError),
}