Skip to content

test(anchor): fix proof-only receipt fuzz oracle for #533 - #559

Open
dinakarjs wants to merge 2 commits into
agentrust-io:fix/464-anc-entry-bindingfrom
dinakarjs:test/anchor-fuzz-entry-oracle-20261017
Open

dinakarjs wants to merge 2 commits into
agentrust-io:fix/464-anc-entry-bindingfrom
dinakarjs:test/anchor-fuzz-entry-oracle-20261017

Conversation

@dinakarjs

@dinakarjs dinakarjs commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

A valid proof-only receipt now passes TR-ANC-002 using the supplied registry entry, but the fuzz target's post-PASS assertion reparses it as a self-contained receipt and raises InclusionError. This reproduces the missing-leaf_count failure in ClusterFuzzLite run 38987830178 (job 117263304673).

This companion targets #533's branch at 6a9d803. The post-PASS oracle parses index/path from the proof and root/count from the entry, then independently replays inclusion. It retains the standalone parse_receipt exception-safety probe and the expected-claim/root assertions.

Five deterministic tests exercise the actual TestOneInput callback with only Atheris instrumentation and raw-byte selection stubbed: a self-contained receipt; each optional copy omitted individually; both omitted; and a deliberately false module PASS over an invalid proof, which the independent replay must catch. The parser, verifier and callback assertions are real.

Validation on Python 3.12: full conformance suite 823 passed, 5 xpassed; Ruff on both changed files and diff whitespace check pass. A process-memory restoration of the old oracle produces four expected failures and one passing complete-receipt control; source files remain unchanged. Local validation is deterministic harness coverage. Hosted exact-head ClusterFuzzLite run 39007093181 subsequently passed both its build and Run fuzzers steps; CI, Docs, Conformance docs and package build also pass. No claim is made about an extended fuzz campaign. Independent review remains required before incorporation.

No normative or runtime verifier changes. The 30-day breaking-change comment period and Project Lead sign-off for #533 remain required. URI-to-entry linkage and entry-origin authentication remain outside this fix.

Cover proof-only receipt variants and ensure the fuzz oracle independently
replays a reported PASS against the registry entry root and leaf count.

Signed-off-by: Srinivasa Dinakar Jainti <dinakarjs@gmail.com>
@github-actions

github-actions Bot commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

🟡 Contributor Check: MEDIUM

Check Result
Profile MEDIUM
Credential LOW
Overall MEDIUM

Automated check by AgenTrust Contributor Check.

@github-actions github-actions Bot added the needs-review:MEDIUM Contributor check flagged MEDIUM risk label Oct 17, 2026
Signed-off-by: Srinivasa Dinakar Jainti <dinakarjs@gmail.com>

Copy link
Copy Markdown
Contributor Author

Publication check: head 81b3e8d preserves the fuzz target's existing executable mode. Its complete tree 2365dcccc2e1ea83c0c086e9cb14a72e275f9dc5 exactly matches the locally validated tree (823 passed, 5 xpassed); no content changes since that validation. Hosted fuzz results remain pending.

@dinakarjs
dinakarjs marked this pull request as ready for review October 17, 2026 08:14
@dinakarjs
dinakarjs requested review from a team, lywinged and rajnisht7 as code owners October 17, 2026 08:14

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-review:MEDIUM Contributor check flagged MEDIUM risk

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant