pqc_binary_format/
error.rs

1//! Error types for PQC Binary Format operations.
2
3use thiserror::Error;
4
5/// Result type alias for PQC Binary Format operations
6pub type Result<T> = std::result::Result<T, CryptoError>;
7
8/// Comprehensive error type for binary format operations
9#[derive(Error, Debug, Clone, PartialEq, Eq)]
10pub enum CryptoError {
11    /// Binary format parsing or validation error
12    #[error("Binary format error: {0}")]
13    BinaryFormatError(String),
14
15    /// Invalid input parameters
16    #[error("Invalid input: {0}")]
17    InvalidInput(String),
18
19    /// Serialization failed
20    #[error("Serialization failed: {0}")]
21    SerializationFailed(String),
22
23    /// Deserialization failed
24    #[error("Deserialization failed: {0}")]
25    DeserializationFailed(String),
26
27    /// Invalid algorithm identifier
28    #[error("Unknown algorithm: {0}")]
29    UnknownAlgorithm(String),
30
31    /// Checksum verification failed
32    #[error("Checksum validation failed")]
33    ChecksumMismatch,
34
35    /// Invalid magic bytes
36    #[error("Invalid magic bytes")]
37    InvalidMagic,
38
39    /// Unsupported format version
40    #[error("Unsupported version: {0:#x}")]
41    UnsupportedVersion(u8),
42
43    /// Metadata validation error
44    #[error("Metadata validation error: {0}")]
45    MetadataError(String),
46}