1#[derive(Debug, thiserror::Error, thiserror_ext::Construct)]
2#[non_exhaustive]
3pub enum Error {
4 #[error("failed to decrypt ciphertext")]
5 Decryption,
6
7 #[error("failed to encrypt plaintext")]
8 Encryption,
9
10 #[error("decoding failure: {cause:?}")]
11 Decoding {
12 #[from]
13 cause: ciborium::de::Error<std::io::Error>,
14 },
15
16 #[error("encoding failure: {cause:?}")]
17 Encoding {
18 #[from]
19 cause: ciborium::ser::Error<std::io::Error>,
20 },
21
22 #[error("ciphertext decoding failure on {element}: {cause:?}")]
23 CiphertextDecoding {
24 element: String,
25 cause: ciborium_ll::Error<std::io::Error>,
26 },
27
28 #[error("ciphertext encoding failure on {element}: {cause}")]
29 CiphertextEncoding {
30 element: String,
31 cause: std::io::Error,
32 },
33
34 #[error("CAN'T HAPPEN: {0}")]
35 Insanity(String),
36
37 #[error("invalid ciphertext: {0}")]
38 InvalidCiphertext(String),
39
40 #[error("invalid key: {0}")]
41 InvalidKey(String),
42}