Repository navigation
test: add algorithm agility vectors for signed agent card verification - #1438
Closed
quantova-inc wants to merge 1 commit into
Closed
quantova-inc wants to merge 1 commit into
quantova-inc wants to merge 1 commit into
Conversation
🧪 Code Coverage (vs
|
quantova-inc
force-pushed
the
agent-card-algorithm-agility-vectors
branch
from
November 9, 2026 16:02
b217350 to
228b4a9
Compare
The signed Agent Card verifier takes an explicit list of acceptable algorithms, the control that blocks algorithm confusion and the seam a future algorithm extends. This adds a test module that pins that behavior for a genuine ES256 signature, an algorithm outside the list, a symmetric signature against an asymmetric key, the unsecured none algorithm, a header with no alg and an algorithm that is named but not registered. The final case uses the FIPS 204 ML-DSA name to record that an algorithm is never accepted by name alone, so post quantum support stays additive and gated behind a real registered implementation. No source change and no new dependency.
quantova-inc
force-pushed
the
agent-card-algorithm-agility-vectors
branch
from
November 9, 2026 16:55
228b4a9 to
5b03c86
Compare
Member
|
Thank you for the contribution, but we won't be merging this one Coverage is unchanged, the cases don't cover behavior that |
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.
Signed Agent Cards carry a detached JWS over the RFC 8785 canonical card. create_signature_verifier takes an explicit list of acceptable algorithms so the algorithm named in a protected header cannot steer verification outside the chosen set. That list is the control that stops algorithm confusion and it is the seam a future algorithm extends. The present suite covers a correct key, a wrong key, a tampered card and malformed protected headers. It does not yet pin the list itself.
This change adds a focused test module that pins that behavior. Nothing under src changes and no dependency is added.
The new vectors assert that a genuine ES256 signature verifies when ES256 is on the list, that an ES256 signature is rejected when ES256 is absent from the list, that an HS256 signature is rejected against an asymmetric public key which is the classic algorithm confusion case, that the unsecured none algorithm is rejected even when a caller names it, that a protected header with no alg is rejected over genuine signature bytes and that an algorithm which is named but not registered is rejected even when it appears in both the header and the list.
The final case uses the FIPS 204 ML-DSA name to record a post quantum readiness property. A verifier does not accept an algorithm by name alone, so adding ML-DSA later stays additive and gated behind a caller opt in and a real registered implementation.
All tests pass and coverage stays above the gate.