mirror of
https://github.com/nodejs/node.git
synced 2025-08-15 13:48:44 +02:00
crypto: support ML-DSA KeyObject, sign, and verify
PR-URL: https://github.com/nodejs/node/pull/59259 Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Ethan Arrowood <ethan@arrowood.dev> Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
parent
2b4a09ef8b
commit
24e28c41b5
31 changed files with 1482 additions and 47 deletions
|
@ -18,13 +18,14 @@ function readKeyPair(publicKeyName, privateKeyName) {
|
|||
}
|
||||
|
||||
const keyFixtures = {
|
||||
ec: readKeyPair('ec_p256_public', 'ec_p256_private'),
|
||||
rsa: readKeyPair('rsa_public_2048', 'rsa_private_2048'),
|
||||
ed25519: readKeyPair('ed25519_public', 'ed25519_private'),
|
||||
'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'),
|
||||
};
|
||||
|
||||
const bench = common.createBenchmark(main, {
|
||||
keyType: ['rsa', 'ec', 'ed25519'],
|
||||
keyType: ['rsa', 'ec', 'ed25519', 'ml-dsa-44'],
|
||||
keyFormat: ['pkcs8', 'spki', 'der-pkcs8', 'der-spki', 'jwk-public', 'jwk-private'],
|
||||
n: [1e3],
|
||||
});
|
||||
|
|
|
@ -6,10 +6,15 @@ const fs = require('fs');
|
|||
const path = require('path');
|
||||
const fixtures_keydir = path.resolve(__dirname, '../../test/fixtures/keys/');
|
||||
|
||||
function readKey(name) {
|
||||
return fs.readFileSync(`${fixtures_keydir}/${name}.pem`, 'utf8');
|
||||
}
|
||||
|
||||
const keyFixtures = {
|
||||
ec: fs.readFileSync(`${fixtures_keydir}/ec_p256_private.pem`, 'utf-8'),
|
||||
rsa: fs.readFileSync(`${fixtures_keydir}/rsa_private_2048.pem`, 'utf-8'),
|
||||
ed25519: fs.readFileSync(`${fixtures_keydir}/ed25519_private.pem`, 'utf-8'),
|
||||
'ec': readKey('ec_p256_private'),
|
||||
'rsa': readKey('rsa_private_2048'),
|
||||
'ed25519': readKey('ed25519_private'),
|
||||
'ml-dsa-44': readKey('ml_dsa_44_private'),
|
||||
};
|
||||
|
||||
const data = crypto.randomBytes(256);
|
||||
|
@ -18,7 +23,7 @@ let pems;
|
|||
let keyObjects;
|
||||
|
||||
const bench = common.createBenchmark(main, {
|
||||
keyType: ['rsa', 'ec', 'ed25519'],
|
||||
keyType: ['rsa', 'ec', 'ed25519', 'ml-dsa-44'],
|
||||
mode: ['sync', 'async', 'async-parallel'],
|
||||
keyFormat: ['pem', 'der', 'jwk', 'keyObject', 'keyObject.unique'],
|
||||
n: [1e3],
|
||||
|
@ -90,6 +95,7 @@ function main({ n, mode, keyFormat, keyType }) {
|
|||
digest = 'sha256';
|
||||
break;
|
||||
case 'ed25519':
|
||||
case 'ml-dsa-44':
|
||||
break;
|
||||
default:
|
||||
throw new Error('not implemented');
|
||||
|
|
|
@ -18,9 +18,10 @@ function readKeyPair(publicKeyName, privateKeyName) {
|
|||
}
|
||||
|
||||
const keyFixtures = {
|
||||
ec: readKeyPair('ec_p256_public', 'ec_p256_private'),
|
||||
rsa: readKeyPair('rsa_public_2048', 'rsa_private_2048'),
|
||||
ed25519: readKeyPair('ed25519_public', 'ed25519_private'),
|
||||
'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'),
|
||||
};
|
||||
|
||||
const data = crypto.randomBytes(256);
|
||||
|
@ -29,7 +30,7 @@ let pems;
|
|||
let keyObjects;
|
||||
|
||||
const bench = common.createBenchmark(main, {
|
||||
keyType: ['rsa', 'ec', 'ed25519'],
|
||||
keyType: ['rsa', 'ec', 'ed25519', 'ml-dsa-44'],
|
||||
mode: ['sync', 'async', 'async-parallel'],
|
||||
keyFormat: ['pem', 'der', 'jwk', 'keyObject', 'keyObject.unique'],
|
||||
n: [1e3],
|
||||
|
@ -104,6 +105,7 @@ function main({ n, mode, keyFormat, keyType }) {
|
|||
digest = 'sha256';
|
||||
break;
|
||||
case 'ed25519':
|
||||
case 'ml-dsa-44':
|
||||
break;
|
||||
default:
|
||||
throw new Error('not implemented');
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue