diff --git a/src/java.base/share/classes/sun/security/provider/ML_DSA_Impls.java b/src/java.base/share/classes/sun/security/provider/ML_DSA_Impls.java index 3c7c7a0c07a41..b324a37bbd3c8 100644 --- a/src/java.base/share/classes/sun/security/provider/ML_DSA_Impls.java +++ b/src/java.base/share/classes/sun/security/provider/ML_DSA_Impls.java @@ -80,11 +80,15 @@ protected byte[][] implGenerateKeyPair(String name, SecureRandom sr) { r.nextBytes(seed); ML_DSA mlDsa = new ML_DSA(name2int(name)); ML_DSA.ML_DSA_KeyPair kp = mlDsa.generateKeyPairInternal(seed); - return new byte[][]{ - mlDsa.pkEncode(kp.publicKey()), - seed, - mlDsa.skEncode(kp.privateKey()) - }; + try { + return new byte[][]{ + mlDsa.pkEncode(kp.publicKey()), + seed, + mlDsa.skEncode(kp.privateKey()) + }; + } finally { + kp.privateKey().destroy(); + } } }