RFR: 8347938: Add Support for the Latest ML-KEM and ML-DSA Private Key Encodings [v4]

Sean Mullan mullan at openjdk.org
Thu Jan 22 20:41:57 UTC 2026


On Tue, 10 Jun 2025 14:41:49 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 IETF drafts at: https://datatracker.ietf.org/doc/html/draft-ietf-lamps-dilithium-certificates-11 and https://datatracker.ietf.org/doc/html/draft-ietf-lamps-kyber-certificates-10. 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 PKCS #8 key, the expanded format is calculated from the input if it's seed only.
>
> Weijun Wang has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains seven commits:
> 
>  - Merge branch 'master' into 8347938
>  - KeyChoices class
>  - allow expanded to be null
>  - merge
>  - Merge
>  - safer privKeyToPubKey; updated desciptions for the properties; adding braces to if blocks
>  - the fix

src/java.base/share/classes/sun/security/util/KeyChoices.java line 46:

> 44:  *       }
> 45:  * </pre>
> 46:  * This class supports reading, writing, and convert between them.

s/convert/converting/

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

PR Review Comment: https://git.openjdk.org/jdk/pull/24969#discussion_r2237859524


More information about the security-dev mailing list