pub struct LogConsistencyProof {
pub log_id: String,
pub first_tree_size: u64,
pub second_tree_size: u64,
pub consistency_path: Vec<String>,
pub log_checkpoint: LogCheckpoint,
}Expand description
A consistency-mode GET /log/proof response (RFC-ACDP-0012 §8.2):
the RFC 6962 §2.1.2 proof PROOF(first, D[second]) that the tree at
first_tree_size is a prefix of the tree at second_tree_size —
the history-rewrite detector. The verifier supplies its own
retained root for first_tree_size (that retained root is the
whole point, §9.2).
Distinct shape from LogInclusion (the schema $comment is
explicit); closed for the same reason — arithmetic evidence has no
extension surface.
Fields§
§log_id: StringThe log instantiation. Consistency proofs exist only within one
log_id (§7.4).
first_tree_size: u64The earlier (retained) tree size.
second_tree_size: u64The later tree size. MUST equal log_checkpoint.tree_size.
consistency_path: Vec<String>PROOF(first, D[second]), each element "sha256:<hex>"; empty
when first == second.
log_checkpoint: LogCheckpointA checkpoint at second_tree_size (§8.2), verified per §9.3.
Implementations§
Source§impl LogConsistencyProof
impl LogConsistencyProof
Sourcepub fn from_value(value: &Value) -> Result<Self, AcdpError>
pub fn from_value(value: &Value) -> Result<Self, AcdpError>
Parse a consistency proof from a GET /log/proof
consistency-mode response, enforcing the closed schema and the
embedded checkpoint’s §9.3 step 1 form.
Sourcepub fn verify_against_first_root(
&self,
first_root_hash: &str,
) -> Result<(), AcdpError>
pub fn verify_against_first_root( &self, first_root_hash: &str, ) -> Result<(), AcdpError>
§9.2 — verify the proof between the verifier’s retained
earlier root (first_root_hash, wire form) and the embedded
later checkpoint’s root, plus the shape bindings (log_ids
equal, second_tree_size == log_checkpoint.tree_size).
Checkpoint signature verification (§9.3) is separate.
A failure here between two signature-valid checkpoints of one
log_id is not a soft error: it is cryptographic evidence that
the registry rewrote logged history, and consumers SHOULD retain
both checkpoints and the failing path as evidence (§9.2, §15).
Trait Implementations§
Source§impl Clone for LogConsistencyProof
impl Clone for LogConsistencyProof
Source§fn clone(&self) -> LogConsistencyProof
fn clone(&self) -> LogConsistencyProof
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more