Integrated: 8347938: Add Support for the Latest ML-KEM and ML-DSA Private Key Encodings

Weijun Wang weijun at openjdk.org
Tue Feb 3 16:36:04 UTC 2026


On Wed, 30 Apr 2025 15:43:31 GMT, Weijun Wang <weijun at openjdk.org> wrote:

> The private key encoding formats of ML-KEM and ML-DSA are updated to match the latest [draft-ietf-lamps-kyber-certificates-11](https://datatracker.ietf.org/doc/html/draft-ietf-lamps-kyber-certificates-11) and [RFC 9881](https://datatracker.ietf.org/doc/rfc9881/). New security/system properties are introduced to determine which CHOICE a private key is encoded when a new key pair is generated or when `KeyFactory::translateKey` is called.
> 
> By default, the choice is "seed".
> 
> Both the encoding and the expanded format are stored inside a `NamedPKCS8Key` now. When loading from a PKCS8 key, the expanded format is calculated from the input if it's seed only.

This pull request has now been integrated.

Changeset: e51ccef9
Author:    Weijun Wang <weijun at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/e51ccef9cb415ed31db70971bb439ca3d96c5bce
Stats:     2509 lines in 24 files changed: 1750 ins; 548 del; 211 mod

8347938: Add Support for the Latest ML-KEM and ML-DSA Private Key Encodings

Reviewed-by: mullan, bperez, mpowers

-------------

PR: https://git.openjdk.org/jdk/pull/24969



More information about the security-dev mailing list