migration(rs256): phase 120 — Add RS256 signing path (additive, HS256 stays default) - #21
Merged
Merged
Conversation
kjgbot
force-pushed
the
migration/rs256/120-rs256-signing
branch
from
April 22, 2026 20:56
c839ffa to
c166350
Compare
… stays default) Generated by workflows/120-*.ts via scripts/run-rs256-migration.sh. Spec: specs/api-keys-and-rs256-migration.md (phase 120). Co-Authored-By: agent-relay <agent@agent-relay.com>
- kid now computed as RFC 7638 JWK thumbprint: SHA-256 of the canonical JWK (lex-sorted required members, no whitespace), base64url-encoded. Removes the YYYY-MM component that caused kid to change at every month rollover, which would have silently broken verification under phase 122's RS256 cutover. - importPrivateKey rejects RSA keys < 2048 bits; logs a warning at <3072 bits per specs/token-format.md. - Single rfc7638Thumbprint() helper shared by sign path and JWKS route so both always produce matching kid values. - Regression tests: deterministic kid, time-independent kid (directly covers the month-rollover bug), sign-kid == jwks-kid, RFC 7638 known-answer, 1024-bit key rejection. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
kjgbot
force-pushed
the
migration/rs256/120-rs256-signing
branch
from
April 22, 2026 20:58
c166350 to
277c127
Compare
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.
Phase 120 — Add RS256 signing path (additive, HS256 stays default)
Part of the api-keys + RS256 migration. See
specs/api-keys-and-rs256-migration.mdfor the full design.Generated by
workflows/120-*.tsand committed byscripts/run-rs256-migration.sh. Every workflow runs the strict review template (implementer self-review + 2 parallel specialist peer reviewers + architect synthesis + approval gate); this PR exists because the gate passed.Run order in the migration
This PR is phase 120. Merge in order; each phase assumes its predecessors are deployed.
Review focus
The workflow already enforced security + spec/compat review. Human review here should focus on: