pub enum VerifyFailureKind {
Parse,
SelfHash,
ChainBreak,
Sequence,
}Expand description
Why the per-line audit-event hash chain (AuditEvent JSONL files
under audit/) failed to verify.
§Disambiguation (issue #970)
A sibling enum
crate::governance::audit::VerifyFailureKind exists for the
governance forensic-bundle chain (Ed25519-signed
ForensicDecision rows in signed_events). Despite the shared
name, the two enums verify different chain shapes and have
different variant sets:
audit::VerifyFailureKind(this enum):Parse,SelfHash,ChainBreak,Sequence. The audit chain hashes each line’s canonical bytes (SelfHash) and verifies a monotonically increasingsequence(Sequence). It does NOT sign rows individually.governance::audit::VerifyFailureKind:Parse,ChainBreak,Signature. The forensic chain signs each row with an Ed25519 key (Signature) and verifies the cross-row hash pointer (ChainBreak). It has no per-lineSelfHash(signature verification subsumes it) and noSequencevariant (sequence is a SQLite column, not a line counter).
They are call-site-disambiguated by their module path. See
docs/internal/enum-proliferation-audit-970.md.
Variants§
Parse
Line could not be parsed as an AuditEvent.
SelfHash
Recomputed self_hash did not match the stored value.
ChainBreak
Stored prev_hash did not match the prior line’s self_hash.
Sequence
sequence did not increase monotonically.
Trait Implementations§
Source§impl Clone for VerifyFailureKind
impl Clone for VerifyFailureKind
Source§fn clone(&self) -> VerifyFailureKind
fn clone(&self) -> VerifyFailureKind
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · 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 VerifyFailureKind
impl Debug for VerifyFailureKind
impl Eq for VerifyFailureKind
Source§impl PartialEq for VerifyFailureKind
impl PartialEq for VerifyFailureKind
Source§fn eq(&self, other: &VerifyFailureKind) -> bool
fn eq(&self, other: &VerifyFailureKind) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for VerifyFailureKind
Auto Trait Implementations§
impl Freeze for VerifyFailureKind
impl RefUnwindSafe for VerifyFailureKind
impl Send for VerifyFailureKind
impl Sync for VerifyFailureKind
impl Unpin for VerifyFailureKind
impl UnsafeUnpin for VerifyFailureKind
impl UnwindSafe for VerifyFailureKind
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more