An evidence companion for four gaps cA2A documents: revocation publication, cross-request single use, portable receipts, a commitment step #65
Replies: 5 comments
|
Thanks for building this against cA2A's own stated limits, and for calling verify_chain rather than re-implementing it. The best home is agentrust-io/integrations as a community-tier entry: an integration.yaml naming the released ca2a-runtime it was tested against, the four cases as runnable tests, and a README that says what each one proves and what it does not. CI there will run it against each cA2A release. |
|
@imran-siddique Thank you, I will put it there: One question before I open it, because it decides whether the CI there means what it should. The at-execution verdict calls cA2A's private
Which would you prefer for a community-tier entry? I will link the PR here either way. |
|
@ogasurfproject-jpg option 2. A companion that reaches into |
|
@imran-siddique Opened agentrust-io/ca2a#263 for the call: a chain evaluated against a caller-supplied set of revocations taken as in force, with today's default unchanged. The entry will pin ca2a-runtime 0.4.0 and say why in its README; when #263 ships it switches to the public call and drops the pin. I will link the PR here. |
|
@imran-siddique The PR is up: agentrust-io/integrations#354 (integrations/horizonshield-ca2a-companion/, head 2191782). It pins ca2a-runtime 0.4.0 and the README says why. One test fails first if _check_revocation moves or changes its signature, and the entry switches to the call in agentrust-io/ca2a#263 and drops the pin when that ships. The four cases are the 57 vectors as tests, grouped by case with named holding and failing cases, and the workflow runs the pins and the latest ca2a-runtime on Python 3.11 to 3.13. The contributor check marks my account HIGH. As far as I can read contributor_check.py, two signals do it: 31 repositories created on this account in the last 90 days (14 of them forks), and issues I filed in 16 repositories within about a week at the start of October. Both are accurate. I mention it only so a reviewer does not have to work it out, and I am glad to answer anything the review needs. |
Uh oh!
There was an error while loading. Please reload this page.
Hello, I maintain MUSUBI and NENRIN in ogasurfproject-jpg/horizon-shield (HORIZON SHIELD is already listed in your TRACE registry). I read cA2A at 305fedc and built a companion profile for four things your own documents say cA2A does not do:
The profile does not change any cA2A object. DelegationCredential and RevocationStatement go in as they are, and every chain is judged by
ca2a_runtime.delegation.verify_chain, never by a reimplementation. What it adds:check_promise,compare_checkpoints). The RevocationSnapshot handed toverify_chainis built from the log, with a signed and anchoredas_of. A checkpoint covers everything logged by itsas_of, so leaving a promised entry out is provable too.Each receipt gets cA2A's verdict twice: with every revocation logged before it in force (log order), and by your audit semantics over all of them (by
issued_at). A revocation only the second one sees is reported as published late rather than hidden either way.Spec, verifier and 57 vectors (two rounds of adversarial review before publishing; each finding is a vector): https://github.com/ogasurfproject-jpg/horizon-shield/tree/main/workers/hs-ledger/nenrin/musubi-v0/ca2a-companion-v0 (in main at 0ba57624). The vectors' credentials and revocations are signed with ca2a-runtime 0.4.0 from PyPI, and
python companion_v0.py --selftestpasses against both PyPI 0.4.0 and 305fedc. Section 9 of the spec checks the receipt against RESP-001 to RESP-014.Your issue template sends design questions here before an issue, so this is that step: nothing here is a pull request, and I am not asking you to take code. The receipt covers the portable option left open in agentrust-io/ca2a#188 and names the lineage agentrust-io/ca2a#168 asks about.
What it does not do: it says nothing about where a responder key lives or which workload signed. Binding the receipt key into the attestation report data would be on your side, and I have not touched it. RESP-013 and RESP-014 stay open.
Two questions:
MIT, like cA2A. Happy to change anything that misreads your spec.
All reactions