firebase_scrypt/
errors.rs

1use base64::DecodeError;
2use ctr::cipher::StreamCipherError;
3use scrypt::errors::{InvalidOutputLen, InvalidParams};
4
5#[derive(Clone, Debug, PartialEq, Eq)]
6pub(crate) enum DerivedKeyError {
7    Base64Decode(DecodeError),
8    InvalidScryptParams(InvalidParams),
9    InvalidOutputLen(InvalidOutputLen),
10}
11
12impl From<DecodeError> for DerivedKeyError {
13    fn from(e: DecodeError) -> Self {
14        Self::Base64Decode(e)
15    }
16}
17
18impl From<InvalidParams> for DerivedKeyError {
19    fn from(e: InvalidParams) -> Self {
20        Self::InvalidScryptParams(e)
21    }
22}
23
24impl From<InvalidOutputLen> for DerivedKeyError {
25    fn from(e: InvalidOutputLen) -> Self {
26        Self::InvalidOutputLen(e)
27    }
28}
29
30#[derive(Clone, Debug)]
31pub(crate) enum EncryptError {
32    StreamCipher(StreamCipherError),
33}
34
35impl From<StreamCipherError> for EncryptError {
36    fn from(e: StreamCipherError) -> Self {
37        Self::StreamCipher(e)
38    }
39}
40
41#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
42pub enum GenerateHashError {
43    GenerateDerivedKeyFailed,
44    DecodingFailed,
45    EncryptionFailed,
46}
47
48impl From<DecodeError> for GenerateHashError {
49    fn from(_: DecodeError) -> Self {
50        Self::DecodingFailed
51    }
52}
53
54impl From<EncryptError> for GenerateHashError {
55    fn from(_: EncryptError) -> Self {
56        Self::EncryptionFailed
57    }
58}
59
60impl From<DerivedKeyError> for GenerateHashError {
61    fn from(_: DerivedKeyError) -> Self {
62        Self::GenerateDerivedKeyFailed
63    }
64}