oauth2.dev

Ed25519

IESG

Registry Context

Ed25519 is the registered JWK curve name for EdDSA signature key pairs. In JOSE, it is used with OKP keys and must not be used with ECDH-ES.

Technical Summary

RFC 8037 registers the curve name "Ed25519" with the description "Ed25519 signature algorithm key pairs" and JOSE implementation requirements "Optional". Section 3.1 associates this subtype with the Ed25519 variant of EdDSA, key type "OKP", and signing algorithm "EdDSA".

When Used

Use when representing an Ed25519 OKP public or private key for EdDSA signing or verification.

Normative Requirements

Implementations using Ed25519 keys

MUST NOT
1
  1. RFC 8037 - Section 3.1

    use the Ed25519 key subtype for Elliptic Curve Diffie-Hellman Ephemeral Static (ECDH-ES).

    Condition: when processing an Ed25519 key

    These subtypes MUST NOT be used for Elliptic Curve Diffie-Hellman Ephemeral Static (ECDH-ES).

JWK producers using OKP keys

MUST
3
  1. RFC 8037 - Section 2

    set the "kty" parameter to "OKP".

    Condition: when representing an Ed25519 key as an OKP JWK

    The parameter "kty" MUST be "OKP".

  2. RFC 8037 - Section 2

    include the "crv" parameter containing the key subtype from the JSON Web Elliptic Curve registry.

    Condition: when representing an Ed25519 key as an OKP JWK

    The parameter "crv" MUST be present and contain the subtype of the key

  3. RFC 8037 - Section 2

    include the "x" parameter containing the base64url-encoded public key.

    Condition: when representing an Ed25519 key as an OKP JWK

    The parameter "x" MUST be present and contain the public key encoded using the base64url encoding.

JWK producers using OKP private keys

MUST
1
  1. RFC 8037 - Section 2

    include the "d" parameter containing the base64url-encoded private key.

    Condition: when representing a private Ed25519 key

    The parameter "d" MUST be present for private keys and contain the private key encoded using the base64url encoding.

JWK producers using OKP public keys

MUST NOT
1
  1. RFC 8037 - Section 2

    include the "d" parameter.

    Condition: when representing a public Ed25519 key

    This parameter MUST NOT be present for public keys.

Validation Guidance

error

Reject an Ed25519 JWK whose "kty" value is not "OKP".

error

Reject an Ed25519 OKP JWK that omits "crv" or whose "crv" value does not identify a subtype from the JSON Web Elliptic Curve registry.

error

Reject an Ed25519 OKP JWK that omits "x" or whose "x" value is not a base64url-encoded public key.

error

Require a base64url-encoded "d" parameter for private Ed25519 JWKs and reject it in public Ed25519 JWKs.

error

Reject any attempt to use an Ed25519 key subtype for ECDH-ES.

info

Interpret "Ed25519" as the Ed25519 EdDSA variant when used as an OKP key subtype.

Reference

Details

Entry Id
Ed25519
Curve Name
Ed25519
Curve Description
Ed25519 signature algorithm key pairs
Jose Implementation Requirements
Optional
Change Controller
IESG
Reference
RFC8037 - Section 3.1