Skip to main content

ma_did/
error.rs

1use thiserror::Error;
2
3pub type Result<T> = std::result::Result<T, MaError>;
4
5#[derive(Debug, Error)]
6pub enum MaError {
7    #[error("empty DID")]
8    EmptyDid,
9    #[error("invalid DID prefix, expected did:ma:")]
10    InvalidDidPrefix,
11    #[error("missing DID identifier")]
12    MissingIdentifier,
13    #[error("missing DID fragment")]
14    MissingFragment,
15    #[error("unexpected DID fragment")]
16    UnexpectedFragment,
17    #[error("invalid DID format")]
18    InvalidDidFormat,
19    #[error("invalid DID fragment: {0}")]
20    InvalidFragment(String),
21    #[error("invalid DID identifier")]
22    InvalidIdentifier,
23    #[error("invalid message id")]
24    InvalidMessageId,
25    #[error("empty message id")]
26    EmptyMessageId,
27    #[error("invalid message type")]
28    InvalidMessageType,
29    #[error("invalid key type")]
30    InvalidKeyType,
31    #[error("invalid identity secret")]
32    InvalidIdentitySecret,
33    #[error("invalid recipient")]
34    InvalidRecipient,
35    #[error("missing message content")]
36    MissingContent,
37    #[error("missing message content type")]
38    MissingContentType,
39    #[error("missing sender")]
40    MissingSender,
41    #[error("missing signature")]
42    MissingSignature,
43    #[error("message timestamp is invalid")]
44    InvalidMessageTimestamp,
45    #[error("message is too old")]
46    MessageTooOld,
47    #[error("message timestamp is too far in the future")]
48    MessageFromFuture,
49    #[error("replay detected")]
50    ReplayDetected,
51    #[error("sender and recipient must differ")]
52    SameActor,
53    #[error("broadcast messages must not have a recipient")]
54    BroadcastMustNotHaveRecipient,
55    #[error("encrypted messages require a recipient")]
56    MessageRequiresRecipient,
57    #[error("context missing")]
58    EmptyContext,
59    #[error("controller missing")]
60    EmptyController,
61    #[error("verification method missing type")]
62    VerificationMethodMissingType,
63    #[error("unknown verification method: {0}")]
64    UnknownVerificationMethod(String),
65    #[error("public key multibase is empty")]
66    EmptyPublicKeyMultibase,
67    #[error("invalid public key multibase")]
68    InvalidPublicKeyMultibase,
69    #[error("invalid multicodec, expected {expected}, got {actual}")]
70    InvalidMulticodec { expected: u64, actual: u64 },
71    #[error("invalid key length, expected {expected}, got {actual}")]
72    InvalidKeyLength { expected: usize, actual: usize },
73    #[error("proof is missing")]
74    MissingProof,
75    #[error("document signature is invalid")]
76    InvalidDocumentSignature,
77    #[error("message signature is invalid")]
78    InvalidMessageSignature,
79    #[error("invalid createdAt timestamp: {0}")]
80    InvalidCreatedAt(String),
81    #[error("invalid updatedAt timestamp: {0}")]
82    InvalidUpdatedAt(String),
83    #[error("identity CID is invalid")]
84    InvalidIdentity,
85    #[error("missing envelope field: {0}")]
86    MissingEnvelopeField(&'static str),
87    #[error("invalid ephemeral key length")]
88    InvalidEphemeralKeyLength,
89    #[error("ciphertext too short")]
90    CiphertextTooShort,
91    #[error("cryptographic operation failed")]
92    Crypto,
93    #[error("CBOR encode failed: {0}")]
94    CborEncode(String),
95    #[error("CBOR decode failed: {0}")]
96    CborDecode(String),
97    #[error("JSON encode failed: {0}")]
98    JsonEncode(String),
99    #[error("JSON decode failed: {0}")]
100    JsonDecode(String),
101}