From d2de1dc9d671f41cc5cde352612f70846bf86831 Mon Sep 17 00:00:00 2001 From: Filip Skokan Date: Wed, 13 Aug 2025 12:11:41 +0200 Subject: [PATCH] benchmark: reflect current OpenSSL in crypto key benchmarks --- benchmark/crypto/create-keyobject.js | 8 ++++++-- benchmark/crypto/oneshot-sign.js | 8 ++++++-- benchmark/crypto/oneshot-verify.js | 8 ++++++-- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/benchmark/crypto/create-keyobject.js b/benchmark/crypto/create-keyobject.js index 75988031abf6cc..58b873cde7f27a 100644 --- a/benchmark/crypto/create-keyobject.js +++ b/benchmark/crypto/create-keyobject.js @@ -1,6 +1,7 @@ 'use strict'; const common = require('../common.js'); +const { hasOpenSSL } = require('../../test/common/crypto.js'); const crypto = require('crypto'); const fs = require('fs'); const path = require('path'); @@ -21,11 +22,14 @@ const keyFixtures = { 'ec': readKeyPair('ec_p256_public', 'ec_p256_private'), 'rsa': readKeyPair('rsa_public_2048', 'rsa_private_2048'), 'ed25519': readKeyPair('ed25519_public', 'ed25519_private'), - 'ml-dsa-44': readKeyPair('ml_dsa_44_public', 'ml_dsa_44_private'), }; +if (hasOpenSSL(3, 5)) { + keyFixtures['ml-dsa-44'] = readKeyPair('ml_dsa_44_public', 'ml_dsa_44_private'); +} + const bench = common.createBenchmark(main, { - keyType: ['rsa', 'ec', 'ed25519', 'ml-dsa-44'], + keyType: Object.keys(keyFixtures), keyFormat: ['pkcs8', 'spki', 'der-pkcs8', 'der-spki', 'jwk-public', 'jwk-private'], n: [1e3], }); diff --git a/benchmark/crypto/oneshot-sign.js b/benchmark/crypto/oneshot-sign.js index 97372606a10ade..e1942c347d7508 100644 --- a/benchmark/crypto/oneshot-sign.js +++ b/benchmark/crypto/oneshot-sign.js @@ -1,6 +1,7 @@ 'use strict'; const common = require('../common.js'); +const { hasOpenSSL } = require('../../test/common/crypto.js'); const crypto = require('crypto'); const fs = require('fs'); const path = require('path'); @@ -14,16 +15,19 @@ const keyFixtures = { 'ec': readKey('ec_p256_private'), 'rsa': readKey('rsa_private_2048'), 'ed25519': readKey('ed25519_private'), - 'ml-dsa-44': readKey('ml_dsa_44_private'), }; +if (hasOpenSSL(3, 5)) { + keyFixtures['ml-dsa-44'] = readKey('ml_dsa_44_private'); +} + const data = crypto.randomBytes(256); let pems; let keyObjects; const bench = common.createBenchmark(main, { - keyType: ['rsa', 'ec', 'ed25519', 'ml-dsa-44'], + keyType: Object.keys(keyFixtures), mode: ['sync', 'async', 'async-parallel'], keyFormat: ['pem', 'der', 'jwk', 'keyObject', 'keyObject.unique'], n: [1e3], diff --git a/benchmark/crypto/oneshot-verify.js b/benchmark/crypto/oneshot-verify.js index 9569d5168f60ce..e0bbc0ce755f15 100644 --- a/benchmark/crypto/oneshot-verify.js +++ b/benchmark/crypto/oneshot-verify.js @@ -1,6 +1,7 @@ 'use strict'; const common = require('../common.js'); +const { hasOpenSSL } = require('../../test/common/crypto.js'); const crypto = require('crypto'); const fs = require('fs'); const path = require('path'); @@ -21,16 +22,19 @@ const keyFixtures = { 'ec': readKeyPair('ec_p256_public', 'ec_p256_private'), 'rsa': readKeyPair('rsa_public_2048', 'rsa_private_2048'), 'ed25519': readKeyPair('ed25519_public', 'ed25519_private'), - 'ml-dsa-44': readKeyPair('ml_dsa_44_public', 'ml_dsa_44_private'), }; +if (hasOpenSSL(3, 5)) { + keyFixtures['ml-dsa-44'] = readKeyPair('ml_dsa_44_public', 'ml_dsa_44_private'); +} + const data = crypto.randomBytes(256); let pems; let keyObjects; const bench = common.createBenchmark(main, { - keyType: ['rsa', 'ec', 'ed25519', 'ml-dsa-44'], + keyType: Object.keys(keyFixtures), mode: ['sync', 'async', 'async-parallel'], keyFormat: ['pem', 'der', 'jwk', 'keyObject', 'keyObject.unique'], n: [1e3],