Skip to content

[DO NOT MERGE — blocked on Python draft-10] STRICT draft-10 alg: reject legacy EdDSA - #20

Draft
marcofanti wants to merge 1 commit into
mainfrom
strict-alg-draft10
Draft

[DO NOT MERGE — blocked on Python draft-10] STRICT draft-10 alg: reject legacy EdDSA#20
marcofanti wants to merge 1 commit into
mainfrom
strict-alg-draft10

Conversation

@marcofanti

Copy link
Copy Markdown
Owner

⛔ Draft / do not merge. This stages the breaking strict-alg flip ahead of the ecosystem so it's ready, but merging now would break all Python interop (the Python reference is still pre-draft-10, emitting EdDSA) including the demo's polyglot step.

What it does

  • Jwts / TokenSupport: token headers must be Ed25519; legacy EdDSA rejected.
  • Jwk.requireConsistentAlg: polymorphic EdDSA in a JWK rejected (unsupported-alg). Absent alg still tolerated — the draft-10 "MUST reject absent alg" rule is deferred to merge time (it reorders toPublicKey error semantics and is the detail most likely to change with the ecosystem's real JWK emission).
  • Tests flipped to assert strict rejection; the Python→Java auth-token interop test now asserts the EdDSA token is rejected (flip back to positive when Python emits Ed25519).

215 tests green on this branch.

Merge gate

Merge only once the Python library and the person server / demo are on draft-10 (emit Ed25519). As of 2026-08-07 the Python lib is still 0.3.5 / pre-10 (last upstream commit 2026-06-16). When the gate opens: rebase onto main, re-validate against Python's actual draft-10 wire format, finalize the absent-alg rejection, then release as the next minor (breaking → 0.3.0).

🤖 Generated with Claude Code

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant