open-standards/wai/http-conformance/cases/keys/wai-keys-r0
Transaction Science 3af54eb5f7 wai: receipts, keys, grants and parameter sets over HTTP
http_binding::receipts (receipt_claims): receipt files named by their link hash,
the receipt index read item by item, each delivery item through jwp-receipts §3
against the client's chains with missing parents walked by their links up to a
bound, step 4 against what the client holds of the object, and claims by subject
and parent; a soft-binding claim about another object attests the ancestor.

http_binding::keys (key_discovery): a key log anchored only from the origin's own
location over HTTPS with a 200 and no redirect, logs through caches adding
revisions without moving the anchor, grants files as locators, and parameter sets
held only by their pins and §7.9.

B's retrofit: jwp_hash::EstablishedHash, built only from bytes or by a fetch
session whose head proof verified (FetchSession::established);
ObjectReceipt::accept_hash and verify_against_hash, and
WaiReceiptProperty::check_against_object_hash, which accept and
check_against_object call; ReceiptChains::verify_admitted_object.

Corpus: group receipts, claims, indexes, a key log, status, grants file and a
set served by digest, with receipt_file, receipts, key_log, grants_file and
param_set cases; http_receipts.py checks them for http_verify.py.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-07 09:15:33 -04:00

1 line
No EOL
898 B
Text

{"kind":"wai-key-log","revisions":[{"grant_max_s":86400,"issued_at":"2026-10-01T00:00:00Z","keys":[{"compromised_since":null,"id":"d1","key":"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d","may_sign":["delivery","energy/Estimator","log-inclusion","soft-binding"],"status":"active","until":null},{"compromised_since":null,"id":"g1","key":"a7f6dfaf8f38b89ba8ce649b594f91e4d01fdc57f9c9493df43b5e50a9987367","may_sign":["module/decoder"],"status":"active","until":null}],"kind":"wai-key-set","next_root":"d481afb3d00a3168a515f522aec12623ae3ee77b919ad5db74353a9f55972d8c","origin":"https://origin.example","prev":null,"revoked_modules":[],"root":"4a72e4035bb435d0aa42d43b8873d9f07cb9bf476fe2ade0aba49983eebd425e","seq":0,"sig":"92de01efa058176b0dc77a5784d401427c6266eec4b5583b4a4ac3eea1f2e52c5cc30809c27fb6b3c1908bd29f6658c85452702677f88c392319249df6a9680f","status_max_age_s":3600}]}