firebase_scrypt/
errors.rs1use 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}