1#![allow(clippy::module_name_repetitions)]
2
3use ps_buffer::BufferError;
4use ps_compress::{CompressionError, DecompressionError};
5use ps_ecc::{DecodeError, EncodeError};
6use ps_hash::HashError;
7use thiserror::Error;
8
9#[derive(Clone, Debug, Error)]
11#[non_exhaustive]
12pub enum EncryptionError {
13 #[error("buffer allocation failed: {0}")]
15 Buffer(#[from] BufferError),
16 #[error("encryption failed (chacha20poly1305)")]
18 ChaCha(#[source] chacha20poly1305::Error),
19 #[error("compression failed: {0}")]
21 Compression(#[from] CompressionError),
22 #[error("ECC encoding failed: {0}")]
24 Ecc(#[from] EncodeError),
25 #[error("hashing failed: {0}")]
27 Hash(#[from] HashError),
28}
29
30#[derive(Clone, Debug, Error)]
32#[non_exhaustive]
33pub enum DecryptionError {
34 #[error("decryption failed (chacha20poly1305)")]
36 ChaCha(#[source] chacha20poly1305::Error),
37 #[error("decompression failed: {0}")]
39 Decompression(#[from] DecompressionError),
40 #[error("ECC decoding failed: {0}")]
42 Ecc(#[from] DecodeError),
43 #[error("hashing failed: {0}")]
45 Hash(#[from] HashError),
46 #[error("decrypted data does not hash to the decryption key")]
48 KeyMismatch,
49}