#[non_exhaustive]pub enum Error {
InvalidInput,
VerificationFailed,
Unsupported,
EntropyFailed,
RngError,
SelfTestFailed(&'static str),
}Expand description
边界内统一的错误类型。
规则:攻击者可控输入(网络数据、证书、密钥文件)不得引发 panic,
一切失败以本错误返回(AGENTS.md 硬性规则 5)。non_exhaustive:
实现里程碑落地时允许追加变体。
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
InvalidInput
输入长度或格式不满足算法要求。
VerificationFailed
密钥/IV/标签等验证失败(认证加密打开失败、签名验证失败等)。 比较必须常数时间,不得通过错误类型区分失败原因。
Unsupported
请求的算法或曲线在当前构建(批准模式)下不可用。
EntropyFailed
熵源失败(OS 随机数不可用)。
RngError
DRBG 失败(健康测试不过、超出生成上限等)。
SelfTestFailed(&'static str)
上电自检失败:模块处于错误状态,拒绝服务,直到重新初始化。
Trait Implementations§
impl Copy for Error
impl Eq for Error
Source§impl Error for Error
impl Error for Error
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
impl StructuralPartialEq for Error
Auto Trait Implementations§
impl Freeze for Error
impl RefUnwindSafe for Error
impl Send for Error
impl Sync for Error
impl Unpin for Error
impl UnsafeUnpin for Error
impl UnwindSafe for Error
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more