crypto_keystore_rs/
error.rs

1use std::io;
2use thiserror::Error;
3
4#[remain::sorted]
5#[derive(Debug, Error)]
6pub enum KeystoreError {
7    #[error("Corrupted keystore data")]
8    CorruptedData,
9
10    #[error("Cryptographic error: {0}")]
11    CryptoError(String),
12
13    #[error("Hex decode error: {0}")]
14    HexError(String),
15
16    #[error("Incorrect password")]
17    IncorrectPassword,
18
19    #[error("Invalid KDF parameters: {0}")]
20    InvalidKdfParams(String),
21
22    #[error("Invalid key material for {chain}: {reason}")]
23    InvalidKey { chain: String, reason: String },
24
25    #[error("IO error: {0}")]
26    IoError(#[from] io::Error),
27
28    #[error("Keystore has not been decrypted yet")]
29    KeyNotDecrypted,
30
31    #[error("Serialization error: {0}")]
32    SerializationError(#[from] serde_json::Error),
33
34    #[error("Unsupported chain: {0}")]
35    UnsupportedChain(String),
36
37    #[error("Unsupported cipher: {0}")]
38    UnsupportedCipher(String),
39
40    #[error("Unsupported KDF type: {0}")]
41    UnsupportedKdf(String),
42
43    #[error("Keystore version {0} not supported")]
44    UnsupportedVersion(u32),
45}
46
47pub type Result<T> = std::result::Result<T, KeystoreError>;