{"id":"ct-consistency-proof-verify","version":"1.0.0","description":"Strictly verify an RFC 6962 v1 append-only consistency proof.","supported_operations":["verify an RFC 6962 v1 CT consistency proof","check CT append-only tree history","validate two certificate transparency tree heads","audit append-only CT log evolution","check an RFC 6962 consistency path","detect inconsistent CT Merkle roots"],"unsupported_operations":["proof construction","inclusion proofs","signed tree head signature verification"],"semantics":["Implements the RFC 6962 section 2.1.1 consistency-proof bit walk over old and new tree sizes and roots. Proof hashes are lowercase hex in RFC order.","Equal nonzero sizes require an empty proof and equal roots. old_size zero requires an empty proof and the RFC 6962 MTH({}) root; when both sizes are zero, new_root must also equal MTH({}). Well-typed mismatches return stable verdicts.","Security-sensitive verification: proof validity establishes only that the supplied RFC 6962 roots have the claimed append-only Merkle relationship. It does not authenticate either signed tree head, establish that a log is trustworthy, or apply any browser or log policy."],"limits":{"max_proof_entries":53},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["old_size","new_size","old_root","new_root","proof"],"properties":{"old_size":{"type":"integer","minimum":0,"maximum":9007199254740991},"new_size":{"type":"integer","minimum":0,"maximum":9007199254740991},"old_root":{"type":"string","pattern":"^[0-9a-f]{64}$"},"new_root":{"type":"string","pattern":"^[0-9a-f]{64}$"},"proof":{"type":"array","maxItems":53,"items":{"type":"string","pattern":"^[0-9a-f]{64}$"}}}},"output_schema":{"type":"object","additionalProperties":false,"required":["valid","reason","computed_old_root","computed_new_root","standard","reference"],"properties":{"valid":{"type":"boolean"},"reason":{"type":["string","null"],"enum":["root_mismatch","proof_length_wrong","size_order_invalid",null]},"computed_old_root":{"type":["string","null"],"pattern":"^[0-9a-f]{64}$"},"computed_new_root":{"type":["string","null"],"pattern":"^[0-9a-f]{64}$"},"standard":{"type":"string","enum":["RFC 6962"]},"reference":{"type":"string","enum":["RFC 6962 sections 2.1 and 2.1.1"]}}},"examples":[{"input":{"old_size":1,"new_size":1,"old_root":"6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d","new_root":"6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d","proof":[]},"output":{"valid":true,"reason":null,"computed_old_root":"6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d","computed_new_root":"6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d","standard":"RFC 6962","reference":"RFC 6962 sections 2.1 and 2.1.1"}},{"input":{"old_size":1,"new_size":1,"old_root":"6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d","new_root":"6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d","proof":[]},"output":{"valid":true,"reason":null,"computed_old_root":"6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d","computed_new_root":"6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d","standard":"RFC 6962","reference":"RFC 6962 sections 2.1 and 2.1.1"}}],"execute_url":"/v1/tools/ct-consistency-proof-verify/versions/1.0.0/execute"}