emerald_vault/crypto/
error.rs1use std::fmt::Display;
2
3#[derive(Debug, Clone, Eq, PartialEq, Display)]
4pub enum CryptoError {
5 CryptoFailed(String),
6 InvalidParams(String),
7 InvalidKey,
8 WrongKey,
9 UnsupportedSource(String),
10 NoEntropy,
11 GlobalKeyRequired,
12 PasswordRequired,
13}
14
15impl From<scrypt::errors::InvalidParams> for CryptoError {
16 fn from(e: scrypt::errors::InvalidParams) -> Self {
17 CryptoError::InvalidParams(e.to_string())
18 }
19}
20
21impl From<scrypt::errors::InvalidOutputLen> for CryptoError {
22 fn from(e: scrypt::errors::InvalidOutputLen) -> Self {
23 CryptoError::InvalidParams(e.to_string())
24 }
25}
26
27impl From<argon2::Error> for CryptoError {
28 fn from(e: argon2::Error) -> Self {
29 CryptoError::InvalidParams(e.to_string())
30 }
31}
32
33impl From<secp256k1::Error> for CryptoError {
34 fn from(err: secp256k1::Error) -> Self {
35 match err {
36 secp256k1::Error::InvalidSecretKey => CryptoError::InvalidKey,
37 secp256k1::Error::InvalidTweak => CryptoError::InvalidParams(format!("{}", err)),
38 _ => CryptoError::CryptoFailed(format!("{}", err))
39 }
40 }
41}