Skip to content

Add support for Ed25519 and Ed448 #429

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft

Add support for Ed25519 and Ed448 #429

wants to merge 1 commit into from

Conversation

fdennis
Copy link
Contributor

@fdennis fdennis commented Aug 12, 2025

No description provided.

Copy link

Test Results

2 271 tests   2 263 ✅  1m 0s ⏱️
   46 suites      8 💤
   46 files        0 ❌

Results for commit a515d73.

@fdennis fdennis requested a review from emlun August 18, 2025 13:40
Copy link
Member

@emlun emlun left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Alright! 🙂 we'll also need corresponding constants in PublicKeyCredentialParameters, and to add Ed448 to the default preferredPubkeyParams (also in RelyingPartyV2). I'd say to add it after ES512, since Ed448 and ES512 are at the same security level and the current default prefers ES256 over EdDSA.

Then we also need some tests! 🙂

Comment on lines +66 to +68
* The signature scheme Ed25519 as defined in <a
* href="https://www.ietf.org/archive/id/draft-ietf-jose-fully-specified-algorithms-13.html#name-edwards-curve-digital-signa">Fully-Specified
* Algorithms for JOSE and COSE</a>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The link to jose-fully-specified-algorithms is good, but should probably be in the @see list instead (ah, and it already is!) since it's not the primary definition of the signature scheme; that's still RFC 8032 like above.

Also, since the upstream outcome (see #319 (comment)) was to recommend against using -19, we should flag that here. I don't think we need to annoy users with a @Deprecated annotation though, something like this should do:

Suggested change
* The signature scheme Ed25519 as defined in <a
* href="https://www.ietf.org/archive/id/draft-ietf-jose-fully-specified-algorithms-13.html#name-edwards-curve-digital-signa">Fully-Specified
* Algorithms for JOSE and COSE</a>
* The signature scheme Ed25519 as defined in <a
* href="https://www.ietf.org/archive/id/draft-ietf-jose-fully-specified-algorithms-13.html#name-edwards-curve-digital-signa">Fully-Specified
* Algorithms for JOSE and COSE</a>
*
* This value is NOT RECOMMENDED, see the <a href="https://w3c.github.io/webauthn/#dom-publickeycredentialcreationoptions-pubkeycredparams">documentation of <code>pubKeyCredParams</code></a>. Use {@link EdDSA} instead or in addition.

Comment on lines +82 to +84
* The signature scheme Ed448 as defined in <a
* href="https://www.ietf.org/archive/id/draft-ietf-jose-fully-specified-algorithms-13.html#name-edwards-curve-digital-signa">Fully-Specified
* Algorithms for JOSE and COSE</a>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's refer to RFC 8032 as the primary source here too.

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

Successfully merging this pull request may close these issues.

2 participants