aboutsummaryrefslogtreecommitdiff
path: root/spake2/src/error.rs
diff options
context:
space:
mode:
authorTony Arcieri <bascule@gmail.com>2022-01-22 16:49:27 -0700
committerGitHub <noreply@github.com>2022-01-22 16:49:27 -0700
commitfc208141e214d9495585039f64d1911c9de21576 (patch)
tree021c7e0c9ef55c838d0ea9974e39906c9bf99060 /spake2/src/error.rs
parent807246b45c9df09c4fab0a36f2148b2b0a0fc992 (diff)
downloadPAKEs-fc208141e214d9495585039f64d1911c9de21576.tar.xz
spake2: refactor internals (#91)
Splits the crate apart into multiple modules
Diffstat (limited to 'spake2/src/error.rs')
-rw-r--r--spake2/src/error.rs32
1 files changed, 32 insertions, 0 deletions
diff --git a/spake2/src/error.rs b/spake2/src/error.rs
new file mode 100644
index 0000000..fca3d64
--- /dev/null
+++ b/spake2/src/error.rs
@@ -0,0 +1,32 @@
+//! Error types.
+
+use core::fmt;
+
+/// [`Result`][`core::result::Result`] type with `spake2`'s [`Error`] type.
+pub type Result<T> = core::result::Result<T, Error>;
+
+/// SPAKE2 errors.
+#[derive(Copy, Clone, Debug, Eq, PartialEq)]
+pub enum Error {
+ /// Bad side
+ BadSide,
+
+ /// Corrupt message
+ CorruptMessage,
+
+ /// Wrong length
+ WrongLength,
+}
+
+impl fmt::Display for Error {
+ fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
+ match self {
+ Error::BadSide => fmt.write_str("bad side"),
+ Error::CorruptMessage => fmt.write_str("corrupt message"),
+ Error::WrongLength => fmt.write_str("invalid length"),
+ }
+ }
+}
+
+#[cfg(feature = "std")]
+impl std::error::Error for Error {}