pub enum SecurityError {
UnsignedManifest {
manifest_offset: u64,
},
InvalidSignature {
manifest_offset: u64,
rejection_phase: &'static str,
},
UnknownSigner {
manifest_offset: u64,
actual_signer: [u8; 16],
expected_signer: Option<[u8; 16]>,
},
ContentHashMismatch {
pointer_name: &'static str,
expected_hash: [u8; 16],
actual_hash: [u8; 16],
seg_offset: u64,
},
EpochDriftExceeded {
epoch_drift: u32,
max_epoch_drift: u32,
},
Level1InvalidSignature {
manifest_offset: u64,
},
}Expand description
Structured security error with deterministic, stable error codes.
Every variant includes enough context for logging and diagnostics without exposing internal state that could aid an attacker.
Variants§
UnsignedManifest
Level 0 manifest has no signature (sig_algo = 0).
InvalidSignature
Signature is present but cryptographically invalid.
Fields
UnknownSigner
Signature is valid but from an unknown/untrusted signer.
Fields
ContentHashMismatch
Content hash of a hotset-referenced segment does not match.
Fields
EpochDriftExceeded
Centroid epoch drift exceeds maximum allowed.
Level1InvalidSignature
Level 1 manifest signature invalid (Paranoid mode only).
Trait Implementations§
Source§impl Clone for SecurityError
impl Clone for SecurityError
Source§fn clone(&self) -> SecurityError
fn clone(&self) -> SecurityError
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SecurityError
impl Debug for SecurityError
Source§impl Display for SecurityError
impl Display for SecurityError
Source§impl PartialEq for SecurityError
impl PartialEq for SecurityError
impl Eq for SecurityError
impl StructuralPartialEq for SecurityError
Auto Trait Implementations§
impl Freeze for SecurityError
impl RefUnwindSafe for SecurityError
impl Send for SecurityError
impl Sync for SecurityError
impl Unpin for SecurityError
impl UnsafeUnpin for SecurityError
impl UnwindSafe for SecurityError
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