open-standards/jcp/jcp-rs/crates
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science ea9857254b
All checks were successful
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (push) Successful in 4m55s
JCP log seals: one hybrid signature over a log's head stands behind every receipt
A receipt is signed with Ed25519 and is asked to show who decided what for
years. The receipts of a log already commit to one another by hash, so the
content id of the last one fixes every byte behind it. A log seal signs
that id, and how many receipts it covers, twice over the same bytes:
Ed25519 beside ML-DSA-65, as the composite id-MLDSA65-Ed25519-SHA512 the
family's signed records already use. Receipts keep their bytes.

- extensions/log-seal.md: the record, the signing bytes, the keys, and the
  reading in five ordered steps under two choices: whether receipts are
  held to their own signatures or to the seal alone, and whether receipts
  no seal covers are reported or refused. What it does not give is stated.
- jcp-logseal: seal_log, read_seal, verify_sealed_log. A history written
  under the steward's own Ed25519 key verifies receipt by receipt and is
  refused against the seal; a log cut short of a seal, which a hash chain
  alone cannot show, is refused; seals chain, so none can be dropped.
- jcp-receipt: verify_chain follows a log's chain with no signature
  consulted. An envelope with bytes after its signature is now refused: it
  verified, and gave one receipt two content ids.
- Conformance C33, and conformance/v1/log_seal.json: three logs, eleven
  seals, twenty-three cases, every refusal code exercised.
- conformance/verify_seal.py decides every case with its own encoding,
  hashing and Ed25519 and the family's second ML-DSA-65, and under
  --selftest removes each of its rules and requires a case to notice.
- Both implementations verify the test case the composite's own
  specification publishes for this suite. Five faults seeded into the
  reference are each caught by the pack.

Co-Authored-By: Claude <[email protected]>
2026-11-11 00:21:02 -05:00
..
jcp-a2a Cargo: no minimum-supported-version floor, because the policy is latest stable 2026-11-03 17:42:20 -05:00
jcp-action-receipt Cargo: no minimum-supported-version floor, because the policy is latest stable 2026-11-03 17:42:20 -05:00
jcp-bridge jcp: the hold's life gets a published log and a second reader, and the profile spans it 2026-11-10 15:24:37 -05:00
jcp-channel jcp §8.1: a hold through a chain counts on every link; check 9's refusal under a hold stated exactly 2026-11-07 10:46:50 -05:00
jcp-cite Cargo: no minimum-supported-version floor, because the policy is latest stable 2026-11-03 17:42:20 -05:00
jcp-cli Cargo: no minimum-supported-version floor, because the policy is latest stable 2026-11-03 17:42:20 -05:00
jcp-conformance JCP log seals: one hybrid signature over a log's head stands behind every receipt 2026-11-11 00:21:02 -05:00
jcp-efficiency x402 v2 discovery, and the workspace lints clean again 2026-11-10 13:22:26 -05:00
jcp-energy The public IOReport status variants say what they mean under the 3-tick cap 2026-11-07 08:30:52 -05:00
jcp-flow x402 v2 discovery, and the workspace lints clean again 2026-11-10 13:22:26 -05:00
jcp-gateway JCP §8.1: a resolution names which hold it resolves, so one settle stops releasing the others 2026-11-10 14:26:12 -05:00
jcp-grant jcp §4.6: a restart no longer hands back a standing grant's firings 2026-11-07 09:47:46 -05:00
jcp-intercept Cargo: no minimum-supported-version floor, because the policy is latest stable 2026-11-03 17:42:20 -05:00
jcp-logseal JCP log seals: one hybrid signature over a log's head stands behind every receipt 2026-11-11 00:21:02 -05:00
jcp-openpay Payments: reclaim on the gate, and the graph ledger runs a reservation's whole life 2026-11-10 23:07:14 -05:00
jcp-orchestrate Cargo: no minimum-supported-version floor, because the policy is latest stable 2026-11-03 17:42:20 -05:00
jcp-policy Cargo: no minimum-supported-version floor, because the policy is latest stable 2026-11-03 17:42:20 -05:00
jcp-prompt Cargo: no minimum-supported-version floor, because the policy is latest stable 2026-11-03 17:42:20 -05:00
jcp-receipt JCP log seals: one hybrid signature over a log's head stands behind every receipt 2026-11-11 00:21:02 -05:00
jcp-runtime Payments: every log prefix is a crash point; the ledger runs a reservation's whole life 2026-11-10 22:48:03 -05:00
jcp-schema JCP §8.1: a hold reserves money too, and a stated per-call ceiling makes the path concurrent 2026-11-10 13:01:56 -05:00
jcp-threshold Cargo: no minimum-supported-version floor, because the policy is latest stable 2026-11-03 17:42:20 -05:00
jcp-trace Cargo: no minimum-supported-version floor, because the policy is latest stable 2026-11-03 17:42:20 -05:00
jcp-wire jcp §8.1: a crash cannot refund a debit 2026-11-07 07:48:56 -05:00
jcp-x402 jcp: the hold's life gets a published log and a second reader, and the profile spans it 2026-11-10 15:24:37 -05:00