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
38
39
40
41
42
43
44
45
|
use core::fmt::{self, Display};
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
pub enum Error {
/// The signature doesn't verify.
SignatureMismatch,
/// A weak public key was used.
WeakPublicKey,
/// The public key is invalid.
InvalidPublicKey,
/// The secret key is invalid.
InvalidSecretKey,
/// The signature is invalid.
InvalidSignature,
/// The seed doesn't have the expected length.
InvalidSeed,
/// The blind doesn't have the expected length.
InvalidBlind,
/// The noise doesn't have the expected length.
InvalidNoise,
/// Parse error
ParseError,
/// Non-canonical encoding
NonCanonical,
}
#[cfg(feature = "std")]
impl std::error::Error for Error {}
impl Display for Error {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Error::SignatureMismatch => write!(f, "Signature doesn't verify"),
Error::WeakPublicKey => write!(f, "Weak public key"),
Error::InvalidPublicKey => write!(f, "Invalid public key"),
Error::InvalidSecretKey => write!(f, "Invalid secret key"),
Error::InvalidSignature => write!(f, "Invalid signature"),
Error::InvalidSeed => write!(f, "Invalid seed length"),
Error::InvalidBlind => write!(f, "Invalid blind length"),
Error::InvalidNoise => write!(f, "Invalid noise length"),
Error::ParseError => write!(f, "Parse error"),
Error::NonCanonical => write!(f, "Non-canonical encoding"),
}
}
}
|