From e05ca9e2d256c4f5acdce8a5d231cda5a65bd4be Mon Sep 17 00:00:00 2001 From: larabr <7375870+larabr@users.noreply.github.com> Date: Thu, 24 Jul 2025 16:42:02 +0200 Subject: [PATCH] Internal: switch away from deprecated noble-curve `util.randomPrivateKey` --- src/crypto/public_key/elliptic/ecdh_x.js | 6 ++---- src/crypto/public_key/elliptic/eddsa.js | 3 +-- src/crypto/public_key/elliptic/oid_curves.js | 2 +- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/crypto/public_key/elliptic/ecdh_x.js b/src/crypto/public_key/elliptic/ecdh_x.js index ba959380..2cd899e6 100644 --- a/src/crypto/public_key/elliptic/ecdh_x.js +++ b/src/crypto/public_key/elliptic/ecdh_x.js @@ -61,8 +61,7 @@ export async function generate(algo) { case enums.publicKey.x448: { const x448 = await util.getNobleCurve(enums.publicKey.x448); - const k = x448.utils.randomPrivateKey(); - const A = x448.getPublicKey(k); + const { secretKey: k, publicKey: A } = x448.keygen(); return { A, k }; } default: @@ -246,10 +245,9 @@ export async function generateEphemeralEncryptionMaterial(algo, recipientA) { } case enums.publicKey.x448: { const x448 = await util.getNobleCurve(enums.publicKey.x448); - const ephemeralSecretKey = x448.utils.randomPrivateKey(); + const { secretKey: ephemeralSecretKey, publicKey: ephemeralPublicKey } = x448.keygen(); const sharedSecret = x448.getSharedSecret(ephemeralSecretKey, recipientA); assertNonZeroArray(sharedSecret); - const ephemeralPublicKey = x448.getPublicKey(ephemeralSecretKey); return { ephemeralPublicKey, sharedSecret }; } default: diff --git a/src/crypto/public_key/elliptic/eddsa.js b/src/crypto/public_key/elliptic/eddsa.js index d94924b8..e5c0da1f 100644 --- a/src/crypto/public_key/elliptic/eddsa.js +++ b/src/crypto/public_key/elliptic/eddsa.js @@ -67,8 +67,7 @@ export async function generate(algo) { case enums.publicKey.ed448: { const ed448 = await util.getNobleCurve(enums.publicKey.ed448); - const seed = ed448.utils.randomPrivateKey(); - const A = ed448.getPublicKey(seed); + const { secretKey: seed, publicKey: A } = ed448.keygen(); return { A, seed }; } default: diff --git a/src/crypto/public_key/elliptic/oid_curves.js b/src/crypto/public_key/elliptic/oid_curves.js index 38edb609..c1f689e2 100644 --- a/src/crypto/public_key/elliptic/oid_curves.js +++ b/src/crypto/public_key/elliptic/oid_curves.js @@ -297,7 +297,7 @@ export { ////////////////////////// async function jsGenKeyPair(name) { const nobleCurve = await util.getNobleCurve(enums.publicKey.ecdsa, name); // excluding curve25519Legacy, ecdh and ecdsa use the same curves - const privateKey = nobleCurve.utils.randomPrivateKey(); + const { secretKey: privateKey } = nobleCurve.keygen(); const publicKey = nobleCurve.getPublicKey(privateKey, false); return { publicKey, privateKey }; }