1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
use failure_derive::*;

#[derive(Debug, Fail)]
pub enum SodiumErrors {
  #[fail(display = "invalid key size, needed: {} got: {}", size_needed, size_provided)]
  InvalidKeySize { size_provided: usize, size_needed: usize },
  #[fail(display = "invalid nonce size, needed: {} got: {}", size_needed, size_provided)]
  InvalidNonceSize { size_provided: usize, size_needed: usize },
  #[fail(display = "Invalid key for libsodium!")]
  InvalidKey {},
  #[fail(display = "Function call to C Sodium Failed.")]
  FunctionError {},
  #[fail(display = "Invalid Output Size specified")]
  InvalidOutputSize {},
}

#[derive(Debug, Fail)]
pub enum RsaKeyErrors {
  #[fail(display = "Invalid RSA Key Provided")]
  InvalidKey {},
  #[fail(display = "Failed to generate signed RSA content")]
  SignError {},
}

#[derive(Debug, Fail)]
pub enum GenericError {
  #[fail(display = "No key of the correct type was provided")]
  NoKeyProvided {},
  #[fail(display = "This token is invalid, or expired.")]
  InvalidToken {},
  #[fail(display = "This token has an invalid footer.")]
  InvalidFooter {},
  #[fail(display = "Failed to generate enough random bytes.")]
  RandomError {},
  #[fail(display = "Failed to perform HKDF")]
  BadHkdf {},
}