1use thiserror::Error;
4
5#[derive(Debug, Error)]
7pub enum CryptoError {
8 #[error("invalid key length: expected {expected}, got {actual}")]
10 InvalidKeyLength {
11 expected: usize,
13 actual: usize,
15 },
16
17 #[error("invalid signature length: expected {expected}, got {actual}")]
19 InvalidSignatureLength {
20 expected: usize,
22 actual: usize,
24 },
25
26 #[error("invalid public key: {0}")]
28 InvalidPublicKey(String),
29
30 #[error("signature verification failed")]
32 SignatureVerificationFailed,
33
34 #[error("invalid hex encoding")]
36 InvalidHexEncoding,
37
38 #[error("invalid base64 encoding")]
40 InvalidBase64Encoding,
41
42 #[error("I/O error: {0}")]
44 IoError(String),
45}
46
47pub type CryptoResult<T> = Result<T, CryptoError>;