summaryrefslogtreecommitdiffstats
path: root/third_party/rust/ece/src/error.rs
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/ece/src/error.rs')
-rw-r--r--third_party/rust/ece/src/error.rs51
1 files changed, 51 insertions, 0 deletions
diff --git a/third_party/rust/ece/src/error.rs b/third_party/rust/ece/src/error.rs
new file mode 100644
index 0000000000..f4b6a6b05a
--- /dev/null
+++ b/third_party/rust/ece/src/error.rs
@@ -0,0 +1,51 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+pub type Result<T> = std::result::Result<T, Error>;
+
+#[derive(Debug, thiserror::Error)]
+pub enum Error {
+ #[error("Invalid auth secret")]
+ InvalidAuthSecret,
+
+ #[error("Invalid salt")]
+ InvalidSalt,
+
+ #[error("Invalid key length")]
+ InvalidKeyLength,
+
+ #[error("Invalid record size")]
+ InvalidRecordSize,
+
+ #[error("Invalid header size (too short)")]
+ HeaderTooShort,
+
+ #[error("Truncated ciphertext")]
+ DecryptTruncated,
+
+ #[error("Zero-length ciphertext")]
+ ZeroCiphertext,
+
+ #[error("Zero-length plaintext")]
+ ZeroPlaintext,
+
+ #[error("Block too short")]
+ BlockTooShort,
+
+ #[error("Invalid decryption padding")]
+ DecryptPadding,
+
+ #[error("Invalid encryption padding")]
+ EncryptPadding,
+
+ #[error("Could not decode base64 entry")]
+ DecodeError(#[from] base64::DecodeError),
+
+ #[error("Crypto backend error")]
+ CryptoError,
+
+ #[cfg(feature = "backend-openssl")]
+ #[error("OpenSSL error: {0}")]
+ OpenSSLError(#[from] openssl::error::ErrorStack),
+}