diff options
Diffstat (limited to 'vendor/ed25519-compact/src/error.rs')
-rw-r--r-- | vendor/ed25519-compact/src/error.rs | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/vendor/ed25519-compact/src/error.rs b/vendor/ed25519-compact/src/error.rs new file mode 100644 index 000000000..a73392d06 --- /dev/null +++ b/vendor/ed25519-compact/src/error.rs @@ -0,0 +1,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"), + } + } +} |