feat: add RFC 8785 canonicalization interop vectors and fix ADR-0003 (#322) - #409
Closed
SnehD wants to merge 6 commits into
Closed
feat: add RFC 8785 canonicalization interop vectors and fix ADR-0003 (#322)#409SnehD wants to merge 6 commits into
SnehD wants to merge 6 commits into
Conversation
ADR-0003 listed the two approved RFC 9162 Merkle hash operations (leaf hash and interior-node hash) alongside rejected alternatives (plain concatenation, BLAKE3, flat hash) without clearly separating the two. This could be misread as four supported constructions. Also removed outdated leaf-content wording that no longer matches the current specification, and pointed readers to spec sections 4.1.1, 3.2.3, and 3.2.5.1 as the source of truth for those details. Documentation only. No code, hashing, or API changes.
# Conflicts: # docs/adr/0003-rfc9162-merkle-domain-separation.md
…(issue agentrust-io#322) - Add four canonicalization-boundary vectors to validate RFC 8785 conformance - Vectors test: non-ASCII UTF-8 output, non-BMP characters, UTF-16 key ordering - Each vector signed by trace-spec for cross-implementation verification - Add interop test runner to verify signatures - Resolve merge conflict in ADR-0003 - Add Section 3.2.2 reference to normative sections list Signed-off-by: Sneha Dalvi <sneha.dalvi2000@gmail.com>
Contributor
|
Thanks for this, @SnehD. Closing it for now, and it is not about the change itself. This repository asks first-time contributors to be vouched by a maintainer before opening a pull request. That is because agent-written contributions are easy to produce and expensive to review, and we would rather talk to you first than review something neither of us can explain. To get vouched: open an issue saying what you want to change and why, in your own words. A maintainer will reply, and add you with See CONTRIBUTING.md for the detail. |
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.
Description
Resolves #322
Adds RFC 8785 canonicalization-boundary vectors from trace-spec for cross-implementation verification and resolves merge conflict in ADR-0003.
Motivation
The previous PR (#404) was closed because the canonicalizer implementation has already been merged upstream. This PR contains ONLY the valuable interop test vectors and the ADR documentation correction that were requested by the maintainer.
Cross-implementation canonicalization testing is critical for verifying RFC 8785 conformance without depending on implementation internals.
Changes
✅ Add four canonicalization-boundary vectors (signed by trace-spec)
✅ Add interop test runner (
test_trace_canonicalization_boundary.py)✅ Add interop directory README
✅ Resolve merge conflict in ADR-0003
Scope Restrictions (Maintained)
python/tests/interop/anddocs/adr/0003-rfc9162-merkle-domain-separation.mdmodified_canonicalize.pyuntouched (implementation already merged)test_canonicalize.pyuntouched (existing tests preserved)Testing
$ pytest python/tests/interop/test_trace_canonicalization_boundary.py python/tests/test_canonicalize.py -v ============================== 48 passed in 1.11s ==============================