Skip to main content

peerbadge_protocol/
error.rs

1//! Shared PeerBadge protocol error handling.
2
3pub use blind_rsa_signatures::pbrsa::PartiallyBlindPublicKeySha384PSSDeterministic as PbrsaPublicKey;
4use thiserror::Error;
5
6/// Error returned by PeerBadge protocol operations.
7#[derive(Debug, Error)]
8pub enum CredentialsError {
9    #[error("blind RSA operation failed: {0}")]
10    BlindRsa(#[from] blind_rsa_signatures::Error),
11    #[error("failed to build canonicalized payload: {0}")]
12    Canonicalize(#[from] serde_json::Error),
13    #[error("invalid Nostr key: {0}")]
14    NostrKey(#[from] nostr::key::Error),
15    #[error("issuer_id does not match")]
16    IssuerIdMismatch,
17    #[error("holder_id does not match")]
18    HolderIdMismatch,
19    #[error("issuance response info does not match")]
20    InfoMismatch,
21    #[error("invalid pending issuance state: {0}")]
22    InvalidPendingIssuanceState(String),
23    #[error("unknown issuer")]
24    UnknownIssuer,
25    #[error("credential has been revoked")]
26    CredentialRevoked,
27    #[error("credential digest is not authorized")]
28    AuthorizationCredentialDigestMismatch,
29    #[error("authorization is not yet valid")]
30    AuthorizationNotYetValid,
31    #[error("verification failed")]
32    VerificationFailed,
33}