pub enum FailureReason {
Decode {
message: String,
},
UnknownEventSchemaVersion {
observed: u16,
expected: u16,
},
PostCutoverV2AuditDispatchUnsupported {
observed: u16,
event_type: EventType,
},
Orphan {
observed_prev: Option<String>,
expected_prev: Option<String>,
},
HashBreak {
which: HashKind,
observed: String,
expected: String,
},
OrdinalGap {
trace_id: String,
observed: u64,
expected: u64,
},
MissingSignature,
BadSignature {
key_id: String,
message: String,
},
UnknownAttestationSchemaVersion {
observed: u16,
expected: u16,
},
RotationEnvelopeRejected {
message: String,
},
}Expand description
What broke at a given row.
Variants§
Decode
Row could not be parsed as an cortex_core::Event. Subsequent
chain checks for this row are skipped.
UnknownEventSchemaVersion
Row’s semantic event schema version is not supported by this audit verifier. Unknown event schema versions fail closed instead of being silently verified under v1 hash framing.
PostCutoverV2AuditDispatchUnsupported
Row declares schema v2 but is not the supported
schema_migration.v1_to_v2 boundary row. Retained for compatibility
with archived Lane S2 reports produced before generic post-cutover v2
Event-wire dispatch landed.
Fields
Orphan
Row’s prev_event_hash does not point at the previous row’s
event_hash.
Fields
HashBreak
Hash recompute failed.
Fields
OrdinalGap
An external ordinal stream had a gap or duplicate at this row. Not produced by the JSONL-only audit today; reserved for the SQL-aware audit pass.
Fields
MissingSignature
Row carries no Ed25519 crate::signed_row::RowSignature but the
signed-chain verifier (verify_signed_chain) requires every row to
be signed (Lane 3.D.6, ADR 0010 §1 “Single asymmetric trust
domain”). Pre-3.D.6 unsigned rows surface here.
BadSignature
Row’s Ed25519 signature did not verify under the active operator
public key. Could indicate tampering, signature lift across keys,
or a stale row whose prev_signature no longer matches the chain.
Fields
UnknownAttestationSchemaVersion
Row’s crate::signed_row::RowSignature::schema_version does not
match cortex_core::canonical::SCHEMA_VERSION_ATTESTATION.
Verifiers fail closed on unknown attestation schema versions per
ADR 0010 §1b.
RotationEnvelopeRejected
An identity.rotate row’s embedded rotation envelope did not
verify under the currently-active operator public key. The
verifier rejects the rotation and continues with the prior key,
so any subsequent rows signed by the proposed-but-unauthorized
new key will themselves fail with Self::BadSignature.
Implementations§
Trait Implementations§
Source§impl Clone for FailureReason
impl Clone for FailureReason
Source§fn clone(&self) -> FailureReason
fn clone(&self) -> FailureReason
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for FailureReason
impl Debug for FailureReason
Source§impl<'de> Deserialize<'de> for FailureReason
impl<'de> Deserialize<'de> for FailureReason
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for FailureReason
impl PartialEq for FailureReason
Source§fn eq(&self, other: &FailureReason) -> bool
fn eq(&self, other: &FailureReason) -> bool
self and other values to be equal, and is used by ==.