Repository navigation
docs(crosswalks): OpenProof approvals as approval-outcome references - #660
Open
antagoninc wants to merge 1 commit into
Open
antagoninc wants to merge 1 commit into
antagoninc wants to merge 1 commit into
Conversation
A cross-walk, docs/crosswalks/openproof-approvals.md, and five fixtures in examples/openproof-approval-outcome/ show a Trust Record pointing at an OpenProof approval by the RFC 8785 SHA-256 of the approved request. tests/test_openproof_approval_outcome_fixtures.py recomputes every verdict from the committed bytes, including OpenProof's Ed25519 signatures over OPEC-1 and the owner's passkey assertion, without importing OpenProof. Informative only: no schema, wire-format or normative change. Signed-off-by: W. Alexander Ousley <246201964+antagoninc@users.noreply.github.com>
antagoninc
requested review from
a team,
lywinged and
rajnisht7
as code owners
November 9, 2026 08:25
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this changes
Adds an informative cross-walk and a fixture set that show a TRACE Trust Record pointing at an OpenProof approval through
referenceswithrel: "approval-outcome"(section 3.1.2). It follows the CHAP precedent (docs/crosswalks/chap-review-decisions.md,examples/chap-approval-outcome/,tests/test_chap_approval_outcome_fixtures.py).docs/crosswalks/openproof-approvals.md: field mapping, verifier steps, boundary.examples/openproof-approval-outcome/: five signed Trust Records, two OpenProof stores,expected.json, README. The JSON files are byte-identical to the output committed in OpenProof atd85c24a(integrations/trace/examples/).tests/test_openproof_approval_outcome_fixtures.py: recomputes every verdict from the committed bytes withrfc8785andcryptography, and verifies each record withagentrust_trace.verify_record. It does not import OpenProof.docs/references-registry.md, one nav entry inmkdocs.yml, one entry inexamples/README.md, and oneMEASURED_ELSEWHEREentry intests/test_adequacy_all_sets.py.Differences from the CHAP set: the
idis content-derived (the SHA-256 of the approval's OpenProof signing bytes), the check covers who signed the approval (an authority key under a root-signed trust, plus a WebAuthn ES256 assertion over the approval digest) and, when a receipt is present, what the receiver executed under it.Measured on this commit with CI's install (
pip install --require-hashes -r requirements/dev.txt,pip install --no-deps -e .), on macOS (Apple silicon) with Python 3.12.12, not on CI's Ubuntu:pytest -q tests/test_openproof_approval_outcome_fixtures.py: 16 passed.pytest -q tests/test_adequacy_all_sets.py: 32 passed.ruff check src tests scripts: all checks passed.python tools/check_dashes.py: no dashes outsideexamples/,spec/trace-v0.1.md.pytest -q -p no:cacheprovider: 8 failed, 5267 passed, 112 skipped. Onmainatb938790without this change, the same command gives 8 failed, 5250 passed, 112 skipped. The 8 failures are the same test IDs in both runs, so this change adds none:test_the_generator_reproduces_the_committed_bytes(applicability-assessment, condition-appraisal, observed-effect);test_docs_quickstart.py;test_readme_api_claims.py::test_the_readme_example_runs;test_review_bar.py.I have not investigated why they fail on macOS. CI on this pull request is the check that counts.
What the fixture test cannot see. Some checks in the test are never seen to fail on any input:
kind,approval_sha256,content_sha256,document,document_version) are not observed failing alone.Failing any of these alone needs a receiver, witness or root key to sign a wrong object, and the fixture set holds no private keys. These step 4 checks are each seen to fail alone: passkey signature, passkey challenge (a valid assertion replayed from the other approval), content hash, and
id.Independence. The verdict logic in the test is a second copy of
openproof_trace.check()in the OpenProof repository, written by the same author. A matching verdict is therefore one source agreeing with itself, not an independent confirmation. What is independent of that author isverify_recordfor the Trust Records, andcryptographyfor every signature.Type of change
Spec section
3.1.2 (
references), informative only. No normative text changes.Tests for a fix
Not a code or schema fix.
Changelog entry
OpenProof approvals as
approval-outcomereferences. A cross-walk,docs/crosswalks/openproof-approvals.md, and five fixtures inexamples/openproof-approval-outcome/show a Trust Record pointing at an OpenProof approval. Theidis derived from the approval's own signing bytes, and thedigestis the RFC 8785 SHA-256 of the approved request.tests/test_openproof_approval_outcome_fixtures.pyrecomputes every verdict from the committed bytes without importing OpenProof, including OpenProof's Ed25519 signatures over its OPEC-1 encoding and the owner's WebAuthn assertion. The five cases are:Informative only: no schema, wire-format or normative change.
Independent read
Before opening, I gave a new AI agent session, which had seen none of this work, the repository at this commit, the diff and the OpenProof checkout. I asked it for every false or over-wide sentence and the strongest objection. It found the following, and I changed each:
04,02,05), and that03is the no-receipt branch.05never reaches the passkey check. The README now says it fails on the authority check, and that only the assertions of01and03are verified.crates/openproof-witness/src/lib.rsandverifier.rs.from_sequence. This is now stated, with the value in the fixtures (1).rfc8785, and every string is ASCII. The text now says so.01and02cite.Not changed:
CHANGELOG.mdis not edited, because the pull request template asks for the bullet here instead.examples/README.mddoes not list the CHAP set. That gap predates this change and is left for a separate edit.Checklist
git commit -s)<!-- CHANGED: #NNN: description -->in spec text