mirror of
https://github.com/electron/electron.git
synced 2026-02-19 03:14:51 -05:00
test: update/fix Node.js disabled specs (#49467)
This commit is contained in:
@@ -10,18 +10,6 @@ This should be upstreamed in some form, though it may need to be tweaked
|
||||
before it's acceptable to upstream, as this patch comments out a couple
|
||||
of tests that upstream probably cares about.
|
||||
|
||||
diff --git a/test/fixtures/crypto/rsa_pss.js b/test/fixtures/crypto/rsa_pss.js
|
||||
index 423f2c4d77bfc98bfbdab93c09aff8012c678cbd..fa0bcceb5697486930a9530732f9a9ab6e1bb5b0 100644
|
||||
--- a/test/fixtures/crypto/rsa_pss.js
|
||||
+++ b/test/fixtures/crypto/rsa_pss.js
|
||||
@@ -1,6 +1,6 @@
|
||||
'use strict';
|
||||
|
||||
-module.exports = function() {
|
||||
+module.exports = function () {
|
||||
const pkcs8 = Buffer.from(
|
||||
'308204bf020100300d06092a864886f70d0101010500048204a9308204a5020100028' +
|
||||
'2010100d3576092e62957364544e7e4233b7bdb293db2085122c479328546f9f0f712' +
|
||||
diff --git a/test/parallel/test-crypto-async-sign-verify.js b/test/parallel/test-crypto-async-sign-verify.js
|
||||
index 9876c4bb6ecd2e5b8879f153811cd0a0a22997aa..2c4bf03452eb10fec52c38a361b6aad93169f08d 100644
|
||||
--- a/test/parallel/test-crypto-async-sign-verify.js
|
||||
@@ -53,6 +41,102 @@ index 9876c4bb6ecd2e5b8879f153811cd0a0a22997aa..2c4bf03452eb10fec52c38a361b6aad9
|
||||
|
||||
// Test Parallel Execution w/ KeyObject is threadsafe in openssl3
|
||||
{
|
||||
diff --git a/test/parallel/test-crypto-authenticated.js b/test/parallel/test-crypto-authenticated.js
|
||||
index e8fedf2d5d5072e00afd493ac2ac44748212b02e..6fcbe244871d25b2151d39160149aaa50dc96012 100644
|
||||
--- a/test/parallel/test-crypto-authenticated.js
|
||||
+++ b/test/parallel/test-crypto-authenticated.js
|
||||
@@ -627,21 +627,25 @@ for (const test of TEST_CASES) {
|
||||
{
|
||||
// CCM cipher without data should not crash, see https://github.com/nodejs/node/issues/38035.
|
||||
const algo = 'aes-128-ccm';
|
||||
- const key = Buffer.alloc(16);
|
||||
- const iv = Buffer.alloc(12);
|
||||
- const opts = { authTagLength: 10 };
|
||||
+ if (!ciphers.includes(algo)) {
|
||||
+ common.printSkipMessage(`unsupported ${algo} test`);
|
||||
+ } else {
|
||||
+ const key = Buffer.alloc(16);
|
||||
+ const iv = Buffer.alloc(12);
|
||||
+ const opts = { authTagLength: 10 };
|
||||
|
||||
- const cipher = crypto.createCipheriv(algo, key, iv, opts);
|
||||
- assert.throws(() => {
|
||||
- cipher.final();
|
||||
- }, hasOpenSSL3 ? {
|
||||
- code: 'ERR_OSSL_TAG_NOT_SET'
|
||||
- } : {
|
||||
- message: /Unsupported state/
|
||||
- });
|
||||
+ const cipher = crypto.createCipheriv(algo, key, iv, opts);
|
||||
+ assert.throws(() => {
|
||||
+ cipher.final();
|
||||
+ }, hasOpenSSL3 ? {
|
||||
+ code: 'ERR_OSSL_TAG_NOT_SET'
|
||||
+ } : {
|
||||
+ message: /Unsupported state/
|
||||
+ });
|
||||
+ }
|
||||
}
|
||||
|
||||
-{
|
||||
+if (!process.features.openssl_is_boringssl) {
|
||||
const key = Buffer.alloc(32);
|
||||
const iv = Buffer.alloc(12);
|
||||
|
||||
@@ -653,11 +657,13 @@ for (const test of TEST_CASES) {
|
||||
message: errMessages.authTagLength
|
||||
});
|
||||
}
|
||||
+} else {
|
||||
+ common.printSkipMessage('Skipping unsupported chacha20-poly1305 test');
|
||||
}
|
||||
|
||||
// ChaCha20-Poly1305 should respect the authTagLength option and should not
|
||||
// require the authentication tag before calls to update() during decryption.
|
||||
-{
|
||||
+if (!process.features.openssl_is_boringssl) {
|
||||
const key = Buffer.alloc(32);
|
||||
const iv = Buffer.alloc(12);
|
||||
|
||||
@@ -697,6 +703,8 @@ for (const test of TEST_CASES) {
|
||||
}
|
||||
}
|
||||
}
|
||||
+} else {
|
||||
+ common.printSkipMessage('Skipping unsupported chacha20-poly1305 test');
|
||||
}
|
||||
|
||||
// ChaCha20-Poly1305 should default to an authTagLength of 16. When encrypting,
|
||||
@@ -706,7 +714,7 @@ for (const test of TEST_CASES) {
|
||||
// shorter tags as long as their length was valid according to NIST SP 800-38D.
|
||||
// For ChaCha20-Poly1305, we intentionally deviate from that because there are
|
||||
// no recommended or approved authentication tag lengths below 16 bytes.
|
||||
-{
|
||||
+if (!process.features.openssl_is_boringssl) {
|
||||
const rfcTestCases = TEST_CASES.filter(({ algo, tampered }) => {
|
||||
return algo === 'chacha20-poly1305' && tampered === false;
|
||||
});
|
||||
@@ -740,10 +748,12 @@ for (const test of TEST_CASES) {
|
||||
|
||||
assert.strictEqual(plaintext.toString('hex'), testCase.plain);
|
||||
}
|
||||
+} else {
|
||||
+ common.printSkipMessage('Skipping unsupported chacha20-poly1305 test');
|
||||
}
|
||||
|
||||
// https://github.com/nodejs/node/issues/45874
|
||||
-{
|
||||
+if (!process.features.openssl_is_boringssl) {
|
||||
const rfcTestCases = TEST_CASES.filter(({ algo, tampered }) => {
|
||||
return algo === 'chacha20-poly1305' && tampered === false;
|
||||
});
|
||||
@@ -771,4 +781,6 @@ for (const test of TEST_CASES) {
|
||||
assert.throws(() => {
|
||||
decipher.final();
|
||||
}, /Unsupported state or unable to authenticate data/);
|
||||
+} else {
|
||||
+ common.printSkipMessage('Skipping unsupported chacha20-poly1305 test');
|
||||
}
|
||||
diff --git a/test/parallel/test-crypto-cipheriv-decipheriv.js b/test/parallel/test-crypto-cipheriv-decipheriv.js
|
||||
index 6742722f9e90914b4dc8c079426d10040d476f72..8801ddfe7023fd0f7d5657b86a9164d75765322e 100644
|
||||
--- a/test/parallel/test-crypto-cipheriv-decipheriv.js
|
||||
@@ -68,6 +152,21 @@ index 6742722f9e90914b4dc8c079426d10040d476f72..8801ddfe7023fd0f7d5657b86a9164d7
|
||||
// Test encryption and decryption with explicit key and iv.
|
||||
// AES Key Wrap test vector comes from RFC3394
|
||||
const plaintext = Buffer.from('00112233445566778899AABBCCDDEEFF', 'hex');
|
||||
diff --git a/test/parallel/test-crypto-default-shake-lengths-oneshot.js b/test/parallel/test-crypto-default-shake-lengths-oneshot.js
|
||||
index 247e58d93c4303ffde132e49fb25cf88d76fae7c..de1648d97c2189c2eb8a6509b19b0c462c203453 100644
|
||||
--- a/test/parallel/test-crypto-default-shake-lengths-oneshot.js
|
||||
+++ b/test/parallel/test-crypto-default-shake-lengths-oneshot.js
|
||||
@@ -5,6 +5,10 @@ const common = require('../common');
|
||||
if (!common.hasCrypto)
|
||||
common.skip('missing crypto');
|
||||
|
||||
+if (process.features.openssl_is_boringssl) {
|
||||
+ common.skip('Skipping unsupported shake128 digest method test');
|
||||
+}
|
||||
+
|
||||
const { hash } = require('crypto');
|
||||
|
||||
common.expectWarning({
|
||||
diff --git a/test/parallel/test-crypto-dh-curves.js b/test/parallel/test-crypto-dh-curves.js
|
||||
index 81a469c226c261564dee1e0b06b6571b18a41f1f..58b66045dba4201b7ebedd78b129420ffc316051 100644
|
||||
--- a/test/parallel/test-crypto-dh-curves.js
|
||||
@@ -82,18 +181,71 @@ index 81a469c226c261564dee1e0b06b6571b18a41f1f..58b66045dba4201b7ebedd78b129420f
|
||||
|
||||
const availableCurves = new Set(crypto.getCurves());
|
||||
diff --git a/test/parallel/test-crypto-dh-errors.js b/test/parallel/test-crypto-dh-errors.js
|
||||
index d7527d82617efccd931f0fc2f700ab876872c1e6..b14b4bbf88b902b6de916b92e3d48335c01df911 100644
|
||||
index d7527d82617efccd931f0fc2f700ab876872c1e6..5474d094c7af1bec1e9d144e04663a41def9df3c 100644
|
||||
--- a/test/parallel/test-crypto-dh-errors.js
|
||||
+++ b/test/parallel/test-crypto-dh-errors.js
|
||||
@@ -27,7 +27,7 @@ assert.throws(() => crypto.createDiffieHellman('abcdef', 13.37), {
|
||||
@@ -27,13 +27,13 @@ assert.throws(() => crypto.createDiffieHellman('abcdef', 13.37), {
|
||||
for (const bits of [-1, 0, 1]) {
|
||||
if (hasOpenSSL3) {
|
||||
assert.throws(() => crypto.createDiffieHellman(bits), {
|
||||
- code: 'ERR_OSSL_DH_MODULUS_TOO_SMALL',
|
||||
+ code: 'ERR_OSSL_BN_BITS_TOO_SMALL',
|
||||
+ code: /ERR_OSSL_(BN_BITS|DH_MODULUS)_TOO_SMALL/,
|
||||
name: 'Error',
|
||||
message: /modulus too small/,
|
||||
});
|
||||
} else {
|
||||
assert.throws(() => crypto.createDiffieHellman(bits), {
|
||||
- code: 'ERR_OSSL_BN_BITS_TOO_SMALL',
|
||||
+ code: /ERR_OSSL_(BN_BITS|DH_MODULUS)_TOO_SMALL/,
|
||||
name: 'Error',
|
||||
message: /bits[\s_]too[\s_]small/i,
|
||||
});
|
||||
diff --git a/test/parallel/test-crypto-dh-group-setters.js b/test/parallel/test-crypto-dh-group-setters.js
|
||||
index 7c774111952eada92c62d45674c0845667ead1bf..37d0a44d0e1e102e5a9893cd8e48967050407c76 100644
|
||||
--- a/test/parallel/test-crypto-dh-group-setters.js
|
||||
+++ b/test/parallel/test-crypto-dh-group-setters.js
|
||||
@@ -6,6 +6,10 @@ if (!common.hasCrypto)
|
||||
const assert = require('assert');
|
||||
const crypto = require('crypto');
|
||||
|
||||
+if (process.features.openssl_is_boringssl) {
|
||||
+ common.skip('Skipping unsupported Diffie-Hellman tests');
|
||||
+}
|
||||
+
|
||||
// Unlike DiffieHellman, DiffieHellmanGroup does not have any setters.
|
||||
const dhg = crypto.getDiffieHellman('modp1');
|
||||
assert.strictEqual(dhg.constructor, crypto.DiffieHellmanGroup);
|
||||
diff --git a/test/parallel/test-crypto-dh-modp2-views.js b/test/parallel/test-crypto-dh-modp2-views.js
|
||||
index 8d01731af79394cb33477a1ba4bb13561604e5e5..a28e615b7f35c7f4fc6ec6f7b065505336e6f832 100644
|
||||
--- a/test/parallel/test-crypto-dh-modp2-views.js
|
||||
+++ b/test/parallel/test-crypto-dh-modp2-views.js
|
||||
@@ -7,6 +7,10 @@ const assert = require('assert');
|
||||
const crypto = require('crypto');
|
||||
const { modp2buf } = require('../common/crypto');
|
||||
|
||||
+if (process.features.openssl_is_boringssl) {
|
||||
+ common.skip('Skipping unsupported Diffie-Hellman tests');
|
||||
+}
|
||||
+
|
||||
const modp2 = crypto.createDiffieHellmanGroup('modp2');
|
||||
|
||||
const views = common.getArrayBufferViews(modp2buf);
|
||||
diff --git a/test/parallel/test-crypto-dh-modp2.js b/test/parallel/test-crypto-dh-modp2.js
|
||||
index 19767d26f4e5fbd1d82b5bfa6ebe0afddc412c3e..eb262f235ff30bf5dc988c1b34052c9856f4d186 100644
|
||||
--- a/test/parallel/test-crypto-dh-modp2.js
|
||||
+++ b/test/parallel/test-crypto-dh-modp2.js
|
||||
@@ -6,6 +6,11 @@ if (!common.hasCrypto)
|
||||
const assert = require('assert');
|
||||
const crypto = require('crypto');
|
||||
const { modp2buf } = require('../common/crypto');
|
||||
+
|
||||
+if (process.features.openssl_is_boringssl) {
|
||||
+ common.skip('Skipping unsupported Diffie-Hellman tests');
|
||||
+}
|
||||
+
|
||||
const modp2 = crypto.createDiffieHellmanGroup('modp2');
|
||||
|
||||
{
|
||||
diff --git a/test/parallel/test-crypto-dh.js b/test/parallel/test-crypto-dh.js
|
||||
index 3c00a5fc73bb9f86f944df74f29d6b5225bc2f0e..b4e7002d862907d2af3b4f8e985700bd03300809 100644
|
||||
--- a/test/parallel/test-crypto-dh.js
|
||||
@@ -146,6 +298,234 @@ index d22281abbd5c3cab3aaa3ac494301fa6b4a8a968..5f0c6a4aed2e868a1a1049212edf2187
|
||||
|
||||
s.pipe(h).on('data', common.mustCall(function(c) {
|
||||
assert.strictEqual(c, expect);
|
||||
diff --git a/test/parallel/test-crypto-key-objects-to-crypto-key.js b/test/parallel/test-crypto-key-objects-to-crypto-key.js
|
||||
index 141e51d1ab74a4fc3b176b303807fb1cf2a58ce1..7ea6643fe5c8cc0e7613782419e1d465f99314cd 100644
|
||||
--- a/test/parallel/test-crypto-key-objects-to-crypto-key.js
|
||||
+++ b/test/parallel/test-crypto-key-objects-to-crypto-key.js
|
||||
@@ -26,9 +26,14 @@ function assertCryptoKey(cryptoKey, keyObject, algorithm, extractable, usages) {
|
||||
{
|
||||
for (const length of [128, 192, 256]) {
|
||||
const key = createSecretKey(randomBytes(length >> 3));
|
||||
- const algorithms = ['AES-CTR', 'AES-CBC', 'AES-GCM', 'AES-KW'];
|
||||
+ let algorithms = ['AES-CTR', 'AES-CBC', 'AES-GCM', 'AES-KW'];
|
||||
if (length === 256)
|
||||
algorithms.push('ChaCha20-Poly1305');
|
||||
+
|
||||
+ if (process.features.openssl_is_boringssl) {
|
||||
+ algorithms = algorithms.filter((a) => a !== 'AES-KW' && a !== 'ChaCha20-Poly1305');
|
||||
+ }
|
||||
+
|
||||
for (const algorithm of algorithms) {
|
||||
const usages = algorithm === 'AES-KW' ? ['wrapKey', 'unwrapKey'] : ['encrypt', 'decrypt'];
|
||||
for (const extractable of [true, false]) {
|
||||
@@ -97,7 +102,14 @@ function assertCryptoKey(cryptoKey, keyObject, algorithm, extractable, usages) {
|
||||
}
|
||||
|
||||
{
|
||||
- for (const algorithm of ['Ed25519', 'Ed448', 'X25519', 'X448']) {
|
||||
+ const algorithms = ['Ed25519', 'X25519'];
|
||||
+
|
||||
+ if (!process.features.openssl_is_boringssl) {
|
||||
+ algorithms.push('X448', 'Ed448');
|
||||
+ }
|
||||
+
|
||||
+ for (const algorithm of algorithms) {
|
||||
+ console.log(algorithm);
|
||||
const { publicKey, privateKey } = generateKeyPairSync(algorithm.toLowerCase());
|
||||
assert.throws(() => {
|
||||
publicKey.toCryptoKey(algorithm === 'Ed25519' ? 'X25519' : 'Ed25519', true, []);
|
||||
diff --git a/test/parallel/test-crypto-key-objects.js b/test/parallel/test-crypto-key-objects.js
|
||||
index e8359ed6d0362c6e8da8be08b0fd42245fa7ae47..bd8211d98261a1acc928e849bf713578c85ff877 100644
|
||||
--- a/test/parallel/test-crypto-key-objects.js
|
||||
+++ b/test/parallel/test-crypto-key-objects.js
|
||||
@@ -302,11 +302,11 @@ const privateDsa = fixtures.readKey('dsa_private_encrypted_1025.pem',
|
||||
}, hasOpenSSL3 ? {
|
||||
message: 'error:1E08010C:DECODER routines::unsupported',
|
||||
} : {
|
||||
- message: 'error:0909006C:PEM routines:get_name:no start line',
|
||||
+ message: /no.start.line/i,
|
||||
code: 'ERR_OSSL_PEM_NO_START_LINE',
|
||||
- reason: 'no start line',
|
||||
+ reason: /no.start.line/i,
|
||||
library: 'PEM routines',
|
||||
- function: 'get_name',
|
||||
+ function: /get_name|OPENSSL_internal/,
|
||||
});
|
||||
|
||||
// This should not abort either: https://github.com/nodejs/node/issues/29904
|
||||
@@ -329,12 +329,12 @@ const privateDsa = fixtures.readKey('dsa_private_encrypted_1025.pem',
|
||||
message: /error:1E08010C:DECODER routines::unsupported/,
|
||||
library: 'DECODER routines'
|
||||
} : {
|
||||
- message: /asn1 encoding/,
|
||||
- library: 'asn1 encoding routines'
|
||||
+ message: /asn1 encoding|public key routines/,
|
||||
+ library: /asn1 encoding routines|public key routines/
|
||||
});
|
||||
}
|
||||
|
||||
-[
|
||||
+const infos = [
|
||||
{ private: fixtures.readKey('ed25519_private.pem', 'ascii'),
|
||||
public: fixtures.readKey('ed25519_public.pem', 'ascii'),
|
||||
keyType: 'ed25519',
|
||||
@@ -344,17 +344,6 @@ const privateDsa = fixtures.readKey('dsa_private_encrypted_1025.pem',
|
||||
d: 'wVK6M3SMhQh3NK-7GRrSV-BVWQx1FO5pW8hhQeu_NdA',
|
||||
kty: 'OKP'
|
||||
} },
|
||||
- { private: fixtures.readKey('ed448_private.pem', 'ascii'),
|
||||
- public: fixtures.readKey('ed448_public.pem', 'ascii'),
|
||||
- keyType: 'ed448',
|
||||
- jwk: {
|
||||
- crv: 'Ed448',
|
||||
- x: 'oX_ee5-jlcU53-BbGRsGIzly0V-SZtJ_oGXY0udf84q2hTW2RdstLktvwpkVJOoNb7o' +
|
||||
- 'Dgc2V5ZUA',
|
||||
- d: '060Ke71sN0GpIc01nnGgMDkp0sFNQ09woVo4AM1ffax1-mjnakK0-p-S7-Xf859QewX' +
|
||||
- 'jcR9mxppY',
|
||||
- kty: 'OKP'
|
||||
- } },
|
||||
{ private: fixtures.readKey('x25519_private.pem', 'ascii'),
|
||||
public: fixtures.readKey('x25519_public.pem', 'ascii'),
|
||||
keyType: 'x25519',
|
||||
@@ -364,18 +353,37 @@ const privateDsa = fixtures.readKey('dsa_private_encrypted_1025.pem',
|
||||
d: 'mL_IWm55RrALUGRfJYzw40gEYWMvtRkesP9mj8o8Omc',
|
||||
kty: 'OKP'
|
||||
} },
|
||||
- { private: fixtures.readKey('x448_private.pem', 'ascii'),
|
||||
+]
|
||||
+
|
||||
+if (!process.features.openssl_is_boringssl) {
|
||||
+ infos.push({
|
||||
+ private: fixtures.readKey('ed448_private.pem', 'ascii'),
|
||||
+ public: fixtures.readKey('ed448_public.pem', 'ascii'),
|
||||
+ keyType: 'ed448',
|
||||
+ jwk: {
|
||||
+ crv: 'Ed448',
|
||||
+ x: 'oX_ee5-jlcU53-BbGRsGIzly0V-SZtJ_oGXY0udf84q2hTW2RdstLktvwpkVJOoNb7o' +
|
||||
+ 'Dgc2V5ZUA',
|
||||
+ d: '060Ke71sN0GpIc01nnGgMDkp0sFNQ09woVo4AM1ffax1-mjnakK0-p-S7-Xf859QewX' +
|
||||
+ 'jcR9mxppY',
|
||||
+ kty: 'OKP'
|
||||
+ }
|
||||
+ }, {
|
||||
+ private: fixtures.readKey('x448_private.pem', 'ascii'),
|
||||
public: fixtures.readKey('x448_public.pem', 'ascii'),
|
||||
keyType: 'x448',
|
||||
jwk: {
|
||||
crv: 'X448',
|
||||
x: 'ioHSHVpTs6hMvghosEJDIR7ceFiE3-Xccxati64oOVJ7NWjfozE7ae31PXIUFq6cVYg' +
|
||||
- 'vSKsDFPA',
|
||||
+ 'vSKsDFPA',
|
||||
d: 'tMNtrO_q8dlY6Y4NDeSTxNQ5CACkHiPvmukidPnNIuX_EkcryLEXt_7i6j6YZMKsrWy' +
|
||||
- 'S0jlSYJk',
|
||||
+ 'S0jlSYJk',
|
||||
kty: 'OKP'
|
||||
- } },
|
||||
-].forEach((info) => {
|
||||
+ }
|
||||
+ });
|
||||
+}
|
||||
+
|
||||
+infos.forEach((info) => {
|
||||
const keyType = info.keyType;
|
||||
|
||||
{
|
||||
@@ -417,7 +425,7 @@ const privateDsa = fixtures.readKey('dsa_private_encrypted_1025.pem',
|
||||
}
|
||||
});
|
||||
|
||||
-[
|
||||
+const ecInfos = [
|
||||
{ private: fixtures.readKey('ec_p256_private.pem', 'ascii'),
|
||||
public: fixtures.readKey('ec_p256_public.pem', 'ascii'),
|
||||
keyType: 'ec',
|
||||
@@ -429,17 +437,6 @@ const privateDsa = fixtures.readKey('dsa_private_encrypted_1025.pem',
|
||||
x: 'X0mMYR_uleZSIPjNztIkAS3_ud5LhNpbiIFp6fNf2Gs',
|
||||
y: 'UbJuPy2Xi0lW7UYTBxPK3yGgDu9EAKYIecjkHX5s2lI'
|
||||
} },
|
||||
- { private: fixtures.readKey('ec_secp256k1_private.pem', 'ascii'),
|
||||
- public: fixtures.readKey('ec_secp256k1_public.pem', 'ascii'),
|
||||
- keyType: 'ec',
|
||||
- namedCurve: 'secp256k1',
|
||||
- jwk: {
|
||||
- crv: 'secp256k1',
|
||||
- d: 'c34ocwTwpFa9NZZh3l88qXyrkoYSxvC0FEsU5v1v4IM',
|
||||
- kty: 'EC',
|
||||
- x: 'cOzhFSpWxhalCbWNdP2H_yUkdC81C9T2deDpfxK7owA',
|
||||
- y: '-A3DAZTk9IPppN-f03JydgHaFvL1fAHaoXf4SX4NXyo'
|
||||
- } },
|
||||
{ private: fixtures.readKey('ec_p384_private.pem', 'ascii'),
|
||||
public: fixtures.readKey('ec_p384_public.pem', 'ascii'),
|
||||
keyType: 'ec',
|
||||
@@ -465,7 +462,25 @@ const privateDsa = fixtures.readKey('dsa_private_encrypted_1025.pem',
|
||||
y: 'Ad3flexBeAfXceNzRBH128kFbOWD6W41NjwKRqqIF26vmgW_8COldGKZjFkOSEASxPB' +
|
||||
'cvA2iFJRUyQ3whC00j0Np'
|
||||
} },
|
||||
-].forEach((info) => {
|
||||
+]
|
||||
+
|
||||
+if (!process.features.openssl_is_boringssl) {
|
||||
+ ecInfos.push({
|
||||
+ private: fixtures.readKey('ec_secp256k1_private.pem', 'ascii'),
|
||||
+ public: fixtures.readKey('ec_secp256k1_public.pem', 'ascii'),
|
||||
+ keyType: 'ec',
|
||||
+ namedCurve: 'secp256k1',
|
||||
+ jwk: {
|
||||
+ crv: 'secp256k1',
|
||||
+ d: 'c34ocwTwpFa9NZZh3l88qXyrkoYSxvC0FEsU5v1v4IM',
|
||||
+ kty: 'EC',
|
||||
+ x: 'cOzhFSpWxhalCbWNdP2H_yUkdC81C9T2deDpfxK7owA',
|
||||
+ y: '-A3DAZTk9IPppN-f03JydgHaFvL1fAHaoXf4SX4NXyo'
|
||||
+ }
|
||||
+ });
|
||||
+}
|
||||
+
|
||||
+ecInfos.forEach((info) => {
|
||||
const { keyType, namedCurve } = info;
|
||||
|
||||
{
|
||||
@@ -540,7 +555,7 @@ const privateDsa = fixtures.readKey('dsa_private_encrypted_1025.pem',
|
||||
format: 'pem',
|
||||
passphrase: Buffer.alloc(1024, 'a')
|
||||
}), {
|
||||
- message: /bad decrypt/
|
||||
+ message: /bad.decrypt/i
|
||||
});
|
||||
|
||||
const publicKey = createPublicKey(publicDsa);
|
||||
@@ -566,7 +581,7 @@ const privateDsa = fixtures.readKey('dsa_private_encrypted_1025.pem',
|
||||
|
||||
{
|
||||
// Test RSA-PSS.
|
||||
- {
|
||||
+ if (!process.features.openssl_is_boringssl) {
|
||||
// This key pair does not restrict the message digest algorithm or salt
|
||||
// length.
|
||||
const publicPem = fixtures.readKey('rsa_pss_public_2048.pem');
|
||||
@@ -625,6 +640,8 @@ const privateDsa = fixtures.readKey('dsa_private_encrypted_1025.pem',
|
||||
}, {
|
||||
code: 'ERR_CRYPTO_INCOMPATIBLE_KEY_OPTIONS'
|
||||
});
|
||||
+ } else {
|
||||
+ common.skip('Skipping unsupported RSA-PSS key test');
|
||||
}
|
||||
|
||||
{
|
||||
diff --git a/test/parallel/test-crypto-keygen-deprecation.js b/test/parallel/test-crypto-keygen-deprecation.js
|
||||
index 926dfbbc4ae987217ab404ec25a3ca0a2ef2edcf..df0b379c1b1e982b96ea97c9814f38991d734ce4 100644
|
||||
--- a/test/parallel/test-crypto-keygen-deprecation.js
|
||||
+++ b/test/parallel/test-crypto-keygen-deprecation.js
|
||||
@@ -4,6 +4,10 @@ const common = require('../common');
|
||||
if (!common.hasCrypto)
|
||||
common.skip('missing crypto');
|
||||
|
||||
+if (process.features.openssl_is_boringssl) {
|
||||
+ common.skip('Skipping unsupported RSA-PSS key tests');
|
||||
+}
|
||||
+
|
||||
const DeprecationWarning = [];
|
||||
DeprecationWarning.push([
|
||||
'"options.hash" is deprecated, use "options.hashAlgorithm" instead.',
|
||||
diff --git a/test/parallel/test-crypto-oneshot-hash-xof.js b/test/parallel/test-crypto-oneshot-hash-xof.js
|
||||
index 75cb4800ff1bd51fedd7bc4e2d7e6af6f4f48346..b4363c31592763235116d970a5f45d4cf63de373 100644
|
||||
--- a/test/parallel/test-crypto-oneshot-hash-xof.js
|
||||
@@ -162,7 +542,7 @@ index 75cb4800ff1bd51fedd7bc4e2d7e6af6f4f48346..b4363c31592763235116d970a5f45d4c
|
||||
{
|
||||
// Default outputLengths.
|
||||
diff --git a/test/parallel/test-crypto-rsa-dsa.js b/test/parallel/test-crypto-rsa-dsa.js
|
||||
index 119bc3c2d20ea7d681f0b579f9d91ad46cdc3634..8d13b105fa426015a873c411ad1d7f64b3d9580e 100644
|
||||
index 119bc3c2d20ea7d681f0b579f9d91ad46cdc3634..ad9cd4fd81aff32ec175f469176e1012b81872ac 100644
|
||||
--- a/test/parallel/test-crypto-rsa-dsa.js
|
||||
+++ b/test/parallel/test-crypto-rsa-dsa.js
|
||||
@@ -29,12 +29,11 @@ const dsaPkcs8KeyPem = fixtures.readKey('dsa_private_pkcs8.pem');
|
||||
@@ -175,24 +555,29 @@ index 119bc3c2d20ea7d681f0b579f9d91ad46cdc3634..8d13b105fa426015a873c411ad1d7f64
|
||||
- reason: 'bad decrypt',
|
||||
- function: 'EVP_DecryptFinal_ex',
|
||||
- library: 'digital envelope routines',
|
||||
+ message: /error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt|error:1e000065:Cipher functions:OPENSSL_internal:BAD_DECRYPT/,
|
||||
+ code: /ERR_OSSL(_EVP)?_BAD_DECRYPT/,
|
||||
+ reason: /bad decrypt|BAD_DECRYPT/,
|
||||
+ message: /bad decrypt|BAD_DECRYPT/i,
|
||||
+ code: /ERR_OSSL_(EVP_)?BAD_DECRYPT/,
|
||||
+ reason: /bad decrypt|BAD_DECRYPT/i,
|
||||
+ function: /EVP_DecryptFinal_ex|OPENSSL_internal/,
|
||||
+ library: /digital envelope routines|Cipher functions/,
|
||||
};
|
||||
|
||||
const decryptError = hasOpenSSL3 ?
|
||||
@@ -223,7 +222,7 @@ function test_rsa(padding, encryptOaepHash, decryptOaepHash) {
|
||||
}, bufferToEncrypt);
|
||||
@@ -325,9 +324,12 @@ function test_rsa(padding, encryptOaepHash, decryptOaepHash) {
|
||||
}
|
||||
|
||||
test_rsa('RSA_NO_PADDING');
|
||||
-test_rsa('RSA_PKCS1_PADDING');
|
||||
test_rsa('RSA_PKCS1_OAEP_PADDING');
|
||||
|
||||
- if (padding === constants.RSA_PKCS1_PADDING) {
|
||||
+ if (!process.features.openssl_is_boringssl) {
|
||||
if (!process.config.variables.node_shared_openssl) {
|
||||
// TODO(richardlau) remove check and else branch after deps/openssl
|
||||
// is upgraded.
|
||||
@@ -489,7 +488,7 @@ assert.throws(() => {
|
||||
+if (!process.features.openssl_is_boringssl) {
|
||||
+ test_rsa('RSA_PKCS1_PADDING');
|
||||
+}
|
||||
+
|
||||
// Test OAEP with different hash functions.
|
||||
test_rsa('RSA_PKCS1_OAEP_PADDING', undefined, 'sha1');
|
||||
test_rsa('RSA_PKCS1_OAEP_PADDING', 'sha1', undefined);
|
||||
@@ -489,7 +491,7 @@ assert.throws(() => {
|
||||
//
|
||||
// Test DSA signing and verification
|
||||
//
|
||||
@@ -201,6 +586,48 @@ index 119bc3c2d20ea7d681f0b579f9d91ad46cdc3634..8d13b105fa426015a873c411ad1d7f64
|
||||
const input = 'I AM THE WALRUS';
|
||||
|
||||
// DSA signatures vary across runs so there is no static string to verify
|
||||
@@ -512,13 +514,15 @@ assert.throws(() => {
|
||||
verify2.update(input);
|
||||
|
||||
assert.strictEqual(verify2.verify(dsaPubPem, signature2, 'hex'), true);
|
||||
+} else {
|
||||
+ common.printSkipMessage('Skipping unsupported DSA test case');
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Test DSA signing and verification with PKCS#8 private key
|
||||
//
|
||||
-{
|
||||
+if (!process.features.openssl_is_boringssl) {
|
||||
const input = 'I AM THE WALRUS';
|
||||
|
||||
// DSA signatures vary across runs so there is no static string to verify
|
||||
@@ -531,6 +535,8 @@ assert.throws(() => {
|
||||
verify.update(input);
|
||||
|
||||
assert.strictEqual(verify.verify(dsaPubPem, signature, 'hex'), true);
|
||||
+} else {
|
||||
+ common.printSkipMessage('Skipping unsupported DSA test case');
|
||||
}
|
||||
|
||||
|
||||
@@ -547,7 +553,7 @@ const input = 'I AM THE WALRUS';
|
||||
}, decryptPrivateKeyError);
|
||||
}
|
||||
|
||||
-{
|
||||
+if (!process.features.openssl_is_boringssl) {
|
||||
// DSA signatures vary across runs so there is no static string to verify
|
||||
// against.
|
||||
const sign = crypto.createSign('SHA1');
|
||||
@@ -559,4 +565,6 @@ const input = 'I AM THE WALRUS';
|
||||
verify.update(input);
|
||||
|
||||
assert.strictEqual(verify.verify(dsaPubPem, signature, 'hex'), true);
|
||||
+} else {
|
||||
+ common.printSkipMessage('Skipping unsupported DSA test case');
|
||||
}
|
||||
diff --git a/test/parallel/test-crypto-scrypt.js b/test/parallel/test-crypto-scrypt.js
|
||||
index eafdfe392bde8eb1fde1dc7e7e9ae51682c74b87..2907e0175379266c90acb9df829d10283bd46652 100644
|
||||
--- a/test/parallel/test-crypto-scrypt.js
|
||||
@@ -273,7 +700,7 @@ index a66f0a94efd7c952c1d2320fbc7a39fe3a88a8a1..dc5846db0e3dcf8f7cb5f7efcdbc81c1
|
||||
for (const [file, length] of keys) {
|
||||
const privKey = fixtures.readKey(file);
|
||||
diff --git a/test/parallel/test-crypto.js b/test/parallel/test-crypto.js
|
||||
index 84111740cd9ef6425b747e24e984e66e46b0b2ef..b1621d310536fae3fdec91a6a9d275ec8fc99a98 100644
|
||||
index 84111740cd9ef6425b747e24e984e66e46b0b2ef..974ee53431ca853aeee1ffbd845e65504feef02e 100644
|
||||
--- a/test/parallel/test-crypto.js
|
||||
+++ b/test/parallel/test-crypto.js
|
||||
@@ -62,7 +62,7 @@ assert.throws(() => {
|
||||
@@ -312,81 +739,297 @@ index 84111740cd9ef6425b747e24e984e66e46b0b2ef..b1621d310536fae3fdec91a6a9d275ec
|
||||
validateList(crypto.getHashes());
|
||||
// Make sure all of the hashes are supported by OpenSSL
|
||||
for (const algo of crypto.getHashes())
|
||||
@@ -197,6 +195,7 @@ assert.throws(
|
||||
@@ -197,61 +195,63 @@ assert.throws(
|
||||
}
|
||||
);
|
||||
|
||||
-assert.throws(() => {
|
||||
- const priv = [
|
||||
- '-----BEGIN RSA PRIVATE KEY-----',
|
||||
- 'MIGrAgEAAiEA+3z+1QNF2/unumadiwEr+C5vfhezsb3hp4jAnCNRpPcCAwEAAQIgQNriSQK4',
|
||||
- 'EFwczDhMZp2dvbcz7OUUyt36z3S4usFPHSECEQD/41K7SujrstBfoCPzwC1xAhEA+5kt4BJy',
|
||||
- 'eKN7LggbF3Dk5wIQN6SL+fQ5H/+7NgARsVBp0QIRANxYRukavs4QvuyNhMx+vrkCEQCbf6j/',
|
||||
- 'Ig6/HueCK/0Jkmp+',
|
||||
- '-----END RSA PRIVATE KEY-----',
|
||||
- '',
|
||||
- ].join('\n');
|
||||
- crypto.createSign('SHA256').update('test').sign(priv);
|
||||
-}, (err) => {
|
||||
- if (!hasOpenSSL3)
|
||||
- assert.ok(!('opensslErrorStack' in err));
|
||||
- assert.throws(() => { throw err; }, hasOpenSSL3 ? {
|
||||
- name: 'Error',
|
||||
- message: 'error:02000070:rsa routines::digest too big for rsa key',
|
||||
- library: 'rsa routines',
|
||||
- } : {
|
||||
- name: 'Error',
|
||||
- message: /routines:RSA_sign:digest too big for rsa key$/,
|
||||
- library: /rsa routines/i,
|
||||
- function: 'RSA_sign',
|
||||
- reason: /digest[\s_]too[\s_]big[\s_]for[\s_]rsa[\s_]key/i,
|
||||
- code: 'ERR_OSSL_RSA_DIGEST_TOO_BIG_FOR_RSA_KEY'
|
||||
- });
|
||||
- return true;
|
||||
-});
|
||||
-
|
||||
-if (!hasOpenSSL3) {
|
||||
+if (!process.features.openssl_is_boringssl) {
|
||||
assert.throws(() => {
|
||||
const priv = [
|
||||
'-----BEGIN RSA PRIVATE KEY-----',
|
||||
@@ -253,7 +252,7 @@ if (!hasOpenSSL3) {
|
||||
assert.throws(() => {
|
||||
- // The correct header inside `rsa_private_pkcs8_bad.pem` should have been
|
||||
- // -----BEGIN PRIVATE KEY----- and -----END PRIVATE KEY-----
|
||||
- // instead of
|
||||
- // -----BEGIN RSA PRIVATE KEY----- and -----END RSA PRIVATE KEY-----
|
||||
- const sha1_privateKey = fixtures.readKey('rsa_private_pkcs8_bad.pem',
|
||||
- 'ascii');
|
||||
- // This would inject errors onto OpenSSL's error stack
|
||||
- crypto.createSign('sha1').sign(sha1_privateKey);
|
||||
+ const priv = [
|
||||
+ '-----BEGIN RSA PRIVATE KEY-----',
|
||||
+ 'MIGrAgEAAiEA+3z+1QNF2/unumadiwEr+C5vfhezsb3hp4jAnCNRpPcCAwEAAQIgQNriSQK4',
|
||||
+ 'EFwczDhMZp2dvbcz7OUUyt36z3S4usFPHSECEQD/41K7SujrstBfoCPzwC1xAhEA+5kt4BJy',
|
||||
+ 'eKN7LggbF3Dk5wIQN6SL+fQ5H/+7NgARsVBp0QIRANxYRukavs4QvuyNhMx+vrkCEQCbf6j/',
|
||||
+ 'Ig6/HueCK/0Jkmp+',
|
||||
+ '-----END RSA PRIVATE KEY-----',
|
||||
+ '',
|
||||
+ ].join('\n');
|
||||
+ crypto.createSign('SHA256').update('test').sign(priv);
|
||||
}, (err) => {
|
||||
- // Do the standard checks, but then do some custom checks afterwards.
|
||||
- assert.throws(() => { throw err; }, {
|
||||
- message: 'error:0D0680A8:asn1 encoding routines:asn1_check_tlen:' +
|
||||
- 'wrong tag',
|
||||
- library: 'asn1 encoding routines',
|
||||
- function: 'asn1_check_tlen',
|
||||
- reason: 'wrong tag',
|
||||
- code: 'ERR_OSSL_ASN1_WRONG_TAG',
|
||||
+ if (!hasOpenSSL3)
|
||||
+ assert.ok(!('opensslErrorStack' in err));
|
||||
+ assert.throws(() => { throw err; }, hasOpenSSL3 ? {
|
||||
+ name: 'Error',
|
||||
+ message: 'error:02000070:rsa routines::digest too big for rsa key',
|
||||
+ library: 'rsa routines',
|
||||
+ } : {
|
||||
+ name: 'Error',
|
||||
+ message: /routines:RSA_sign:digest too big for rsa key$/,
|
||||
+ library: /rsa routines/i,
|
||||
+ function: 'RSA_sign',
|
||||
+ reason: /digest[\s_]too[\s_]big[\s_]for[\s_]rsa[\s_]key/i,
|
||||
+ code: 'ERR_OSSL_RSA_DIGEST_TOO_BIG_FOR_RSA_KEY'
|
||||
});
|
||||
- // Throws crypto error, so there is an opensslErrorStack property.
|
||||
- // The openSSL stack should have content.
|
||||
- assert(Array.isArray(err.opensslErrorStack));
|
||||
- assert(err.opensslErrorStack.length > 0);
|
||||
return true;
|
||||
});
|
||||
+
|
||||
+ if (!hasOpenSSL3) {
|
||||
+ assert.throws(() => {
|
||||
+ // The correct header inside `rsa_private_pkcs8_bad.pem` should have been
|
||||
+ // -----BEGIN PRIVATE KEY----- and -----END PRIVATE KEY-----
|
||||
+ // instead of
|
||||
+ // -----BEGIN RSA PRIVATE KEY----- and -----END RSA PRIVATE KEY-----
|
||||
+ const sha1_privateKey = fixtures.readKey('rsa_private_pkcs8_bad.pem',
|
||||
+ 'ascii');
|
||||
+ // This would inject errors onto OpenSSL's error stack
|
||||
+ crypto.createSign('sha1').sign(sha1_privateKey);
|
||||
+ }, (err) => {
|
||||
+ // Do the standard checks, but then do some custom checks afterwards.
|
||||
+ assert.throws(() => { throw err; }, {
|
||||
+ message: 'error:0D0680A8:asn1 encoding routines:asn1_check_tlen:' +
|
||||
+ 'wrong tag',
|
||||
+ library: 'asn1 encoding routines',
|
||||
+ function: 'asn1_check_tlen',
|
||||
+ reason: 'wrong tag',
|
||||
+ code: 'ERR_OSSL_ASN1_WRONG_TAG',
|
||||
+ });
|
||||
+ // Throws crypto error, so there is an opensslErrorStack property.
|
||||
+ // The openSSL stack should have content.
|
||||
+ assert(Array.isArray(err.opensslErrorStack));
|
||||
+ assert(err.opensslErrorStack.length > 0);
|
||||
+ return true;
|
||||
+ });
|
||||
+ }
|
||||
}
|
||||
-
|
||||
+}
|
||||
// Make sure memory isn't released before being returned
|
||||
console.log(crypto.randomBytes(16));
|
||||
|
||||
// Make sure memory isn't released before being returned
|
||||
diff --git a/test/parallel/test-tls-client-auth.js b/test/parallel/test-tls-client-auth.js
|
||||
index b347c0a88df571296127985f8e7b70de66726cc0..66465783d344dab1330069e36577d41fc75db962 100644
|
||||
--- a/test/parallel/test-tls-client-auth.js
|
||||
+++ b/test/parallel/test-tls-client-auth.js
|
||||
@@ -112,7 +112,7 @@ if (tls.DEFAULT_MAX_VERSION === 'TLSv1.3') connect({
|
||||
// and sends a fatal Alert to the client that the client discovers there has
|
||||
// been a fatal error.
|
||||
pair.client.conn.once('error', common.mustCall((err) => {
|
||||
- assert.strictEqual(err.code, 'ERR_SSL_TLSV13_ALERT_CERTIFICATE_REQUIRED');
|
||||
+ //assert.strictEqual(err.code, 'ERR_SSL_TLSV13_ALERT_CERTIFICATE_REQUIRED');
|
||||
cleanup();
|
||||
}));
|
||||
});
|
||||
diff --git a/test/parallel/test-tls-peer-certificate.js b/test/parallel/test-tls-peer-certificate.js
|
||||
index 41e3c883d950e074dffcdd6df888eaf47696039c..304724b564956ff3c38cb42793141ddcc57dfd75 100644
|
||||
--- a/test/parallel/test-tls-peer-certificate.js
|
||||
+++ b/test/parallel/test-tls-peer-certificate.js
|
||||
@@ -55,7 +55,7 @@ connect({
|
||||
assert.strictEqual(peerCert.ca, false);
|
||||
assert.strictEqual(peerCert.issuerCertificate.ca, true);
|
||||
assert.strictEqual(peerCert.subject.emailAddress, 'ry@tinyclouds.org');
|
||||
- assert.strictEqual(peerCert.serialNumber, '147D36C1C2F74206DE9FAB5F2226D78ADB00A426');
|
||||
+ assert.match(peerCert.serialNumber, /147D36C1C2F74206DE9FAB5F2226D78ADB00A426/i);
|
||||
assert.strictEqual(peerCert.exponent, '0x10001');
|
||||
assert.strictEqual(peerCert.bits, 2048);
|
||||
// The conversion to bits is odd because modulus isn't a buffer, its a hex
|
||||
@@ -95,7 +95,7 @@ connect({
|
||||
|
||||
const issuer = peerCert.issuerCertificate;
|
||||
assert.strictEqual(issuer.issuerCertificate, issuer);
|
||||
- assert.strictEqual(issuer.serialNumber, '4AB16C8DFD6A7D0D2DFCABDF9C4B0E92C6AD0229');
|
||||
+ assert.match(issuer.serialNumber, /4AB16C8DFD6A7D0D2DFCABDF9C4B0E92C6AD0229/i);
|
||||
|
||||
return cleanup();
|
||||
});
|
||||
@@ -114,7 +114,7 @@ connect({
|
||||
|
||||
assert.ok(peerCert.issuerCertificate);
|
||||
assert.strictEqual(peerCert.subject.emailAddress, 'ry@tinyclouds.org');
|
||||
- assert.strictEqual(peerCert.serialNumber, '32E8197681DA33185867B52885F678BFDBA51727');
|
||||
+ assert.match(peerCert.serialNumber, /32E8197681DA33185867B52885F678BFDBA51727/i);
|
||||
assert.strictEqual(peerCert.exponent, undefined);
|
||||
assert.strictEqual(peerCert.pubKey, undefined);
|
||||
assert.strictEqual(peerCert.modulus, undefined);
|
||||
@@ -146,7 +146,6 @@ connect({
|
||||
|
||||
const issuer = peerCert.issuerCertificate;
|
||||
assert.strictEqual(issuer.issuerCertificate, issuer);
|
||||
- assert.strictEqual(issuer.serialNumber, '32E8197681DA33185867B52885F678BFDBA51727');
|
||||
-
|
||||
+ assert.match(issuer.serialNumber, /32E8197681DA33185867B52885F678BFDBA51727/i);
|
||||
return cleanup();
|
||||
});
|
||||
diff --git a/test/parallel/test-tls-pfx-authorizationerror.js b/test/parallel/test-tls-pfx-authorizationerror.js
|
||||
index eb705d591ef23a90bd78d52797fd1a58bc84a7dd..da428f1320e9e7bd1683724806a7438ed5aa38cc 100644
|
||||
--- a/test/parallel/test-tls-pfx-authorizationerror.js
|
||||
+++ b/test/parallel/test-tls-pfx-authorizationerror.js
|
||||
@@ -22,13 +22,13 @@ const server = tls
|
||||
rejectUnauthorized: false
|
||||
},
|
||||
common.mustCall(function(c) {
|
||||
- assert.strictEqual(c.getPeerCertificate().serialNumber,
|
||||
- '147D36C1C2F74206DE9FAB5F2226D78ADB00A426');
|
||||
+ assert.match(c.getPeerCertificate().serialNumber,
|
||||
+ /147D36C1C2F74206DE9FAB5F2226D78ADB00A426/i);
|
||||
assert.strictEqual(c.authorizationError, null);
|
||||
c.end();
|
||||
})
|
||||
)
|
||||
- .listen(0, function() {
|
||||
+ .listen(0, common.mustCall(function() {
|
||||
const client = tls.connect(
|
||||
{
|
||||
port: this.address().port,
|
||||
@@ -36,16 +36,16 @@ const server = tls
|
||||
passphrase: 'sample',
|
||||
rejectUnauthorized: false
|
||||
},
|
||||
- function() {
|
||||
+ common.mustCall(() => {
|
||||
for (let i = 0; i < 10; ++i) {
|
||||
// Calling this repeatedly is a regression test that verifies
|
||||
// that .getCertificate() does not accidentally decrease the
|
||||
// reference count of the X509* certificate on the native side.
|
||||
- assert.strictEqual(client.getCertificate().serialNumber,
|
||||
- '147D36C1C2F74206DE9FAB5F2226D78ADB00A426');
|
||||
+ assert.match(client.getCertificate().serialNumber,
|
||||
+ /147D36C1C2F74206DE9FAB5F2226D78ADB00A426/i);
|
||||
}
|
||||
client.end();
|
||||
server.close();
|
||||
- }
|
||||
+ }),
|
||||
);
|
||||
- });
|
||||
+ }));
|
||||
diff --git a/test/parallel/test-tls-set-sigalgs.js b/test/parallel/test-tls-set-sigalgs.js
|
||||
index 985ca13ba2ac7d58f87c263c7654c4f4087efddf..21c199bdb12739f82a075c4e10e08faf8c587cf4 100644
|
||||
--- a/test/parallel/test-tls-set-sigalgs.js
|
||||
+++ b/test/parallel/test-tls-set-sigalgs.js
|
||||
@@ -65,13 +65,14 @@ test('RSA-PSS+SHA256:RSA-PSS+SHA512:ECDSA+SHA256',
|
||||
'RSA-PSS+SHA256:ECDSA+SHA256',
|
||||
['RSA-PSS+SHA256', 'ECDSA+SHA256']);
|
||||
|
||||
+const cerr = process.features.openssl_is_boringssl ?
|
||||
+ 'ERR_SSL_NO_COMMON_SIGNATURE_ALGORITHMS' : 'ERR_SSL_NO_SHARED_SIGNATURE_ALGORITHMS';
|
||||
+
|
||||
// Do not have shared sigalgs.
|
||||
const handshakeErr = hasOpenSSL(3, 2) ?
|
||||
'ERR_SSL_SSL/TLS_ALERT_HANDSHAKE_FAILURE' : 'ERR_SSL_SSLV3_ALERT_HANDSHAKE_FAILURE';
|
||||
test('RSA-PSS+SHA384', 'ECDSA+SHA256',
|
||||
- undefined, handshakeErr,
|
||||
- 'ERR_SSL_NO_SHARED_SIGNATURE_ALGORITHMS');
|
||||
+ undefined, handshakeErr, cerr);
|
||||
|
||||
test('RSA-PSS+SHA384:ECDSA+SHA256', 'ECDSA+SHA384:RSA-PSS+SHA256',
|
||||
- undefined, handshakeErr,
|
||||
- 'ERR_SSL_NO_SHARED_SIGNATURE_ALGORITHMS');
|
||||
+ undefined, handshakeErr, cerr);
|
||||
\ No newline at end of file
|
||||
diff --git a/test/parallel/test-webcrypto-export-import-cfrg.js b/test/parallel/test-webcrypto-export-import-cfrg.js
|
||||
index ae203e1005de0ab4370bd611f4f2ae64bb7a9a6a..216ce5fd14001183e7deb2abadc93178e7a18a58 100644
|
||||
--- a/test/parallel/test-webcrypto-export-import-cfrg.js
|
||||
+++ b/test/parallel/test-webcrypto-export-import-cfrg.js
|
||||
@@ -411,7 +411,7 @@ async function testImportRaw({ name, publicUsages }) {
|
||||
await Promise.all(tests);
|
||||
})().then(common.mustCall());
|
||||
|
||||
-{
|
||||
+if (!process.features.openssl_is_boringssl) {
|
||||
const rsaPublic = crypto.createPublicKey(
|
||||
fixtures.readKey('rsa_public_2048.pem'));
|
||||
const rsaPrivate = crypto.createPrivateKey(
|
||||
@@ -432,4 +432,6 @@ async function testImportRaw({ name, publicUsages }) {
|
||||
{ name },
|
||||
true, privateUsages), { message: /Invalid key type/ }).then(common.mustCall());
|
||||
}
|
||||
+} else {
|
||||
+ common.printSkipMessage('Skipping RSA key import tests');
|
||||
}
|
||||
diff --git a/test/parallel/test-webcrypto-wrap-unwrap.js b/test/parallel/test-webcrypto-wrap-unwrap.js
|
||||
index bd788ec4ed88289d35798b8af8c9490a68e081a2..1a5477ba928bce93320f8056db02e1a7b8ddcdf3 100644
|
||||
index bd788ec4ed88289d35798b8af8c9490a68e081a2..c6a6f33490595faabaefc9b58afdd813f0887258 100644
|
||||
--- a/test/parallel/test-webcrypto-wrap-unwrap.js
|
||||
+++ b/test/parallel/test-webcrypto-wrap-unwrap.js
|
||||
@@ -20,14 +20,15 @@ const kWrappingData = {
|
||||
wrap: { label: new Uint8Array(8) },
|
||||
pair: true
|
||||
},
|
||||
- 'AES-CTR': {
|
||||
+ 'AES-CBC': {
|
||||
generate: { length: 128 },
|
||||
- wrap: { counter: new Uint8Array(16), length: 64 },
|
||||
+ wrap: { iv: new Uint8Array(16) },
|
||||
pair: false
|
||||
},
|
||||
- 'AES-CBC': {
|
||||
+ /*
|
||||
+ 'AES-CTR': {
|
||||
generate: { length: 128 },
|
||||
- wrap: { iv: new Uint8Array(16) },
|
||||
+ wrap: { counter: new Uint8Array(16), length: 64 },
|
||||
pair: false
|
||||
},
|
||||
'AES-GCM': {
|
||||
@@ -46,30 +47,9 @@ if (!process.features.openssl_is_boringssl) {
|
||||
generate: { length: 128 },
|
||||
wrap: { },
|
||||
pair: false
|
||||
- };
|
||||
- kWrappingData['ChaCha20-Poly1305'] = {
|
||||
- wrap: {
|
||||
- iv: new Uint8Array(12),
|
||||
- additionalData: new Uint8Array(16),
|
||||
- tagLength: 128
|
||||
@@ -179,13 +179,6 @@ async function generateKeysToWrap() {
|
||||
usages: ['encrypt', 'decrypt'],
|
||||
pair: false,
|
||||
},
|
||||
- {
|
||||
- algorithm: {
|
||||
- name: 'ChaCha20-Poly1305'
|
||||
- },
|
||||
- usages: ['encrypt', 'decrypt'],
|
||||
- pair: false,
|
||||
- },
|
||||
- pair: false
|
||||
- };
|
||||
-} else {
|
||||
- common.printSkipMessage('Skipping unsupported AES-KW test case');
|
||||
-}
|
||||
-
|
||||
-if (hasOpenSSL(3)) {
|
||||
- kWrappingData['AES-OCB'] = {
|
||||
- generate: { length: 128 },
|
||||
- wrap: {
|
||||
- iv: new Uint8Array(15),
|
||||
- additionalData: new Uint8Array(16),
|
||||
- tagLength: 128
|
||||
- },
|
||||
- pair: false
|
||||
- };
|
||||
-}
|
||||
+ }
|
||||
+ */
|
||||
+};
|
||||
{
|
||||
algorithm: {
|
||||
name: 'HMAC',
|
||||
@@ -210,6 +203,18 @@ async function generateKeysToWrap() {
|
||||
common.printSkipMessage('Skipping unsupported AES-KW test case');
|
||||
}
|
||||
|
||||
function generateWrappingKeys() {
|
||||
return Promise.all(Object.keys(kWrappingData).map(async (name) => {
|
||||
+ if (!process.features.openssl_is_boringssl) {
|
||||
+ parameters.push({
|
||||
+ algorithm: {
|
||||
+ name: 'ChaCha20-Poly1305'
|
||||
+ },
|
||||
+ usages: ['encrypt', 'decrypt'],
|
||||
+ pair: false,
|
||||
+ });
|
||||
+ } else {
|
||||
+ common.printSkipMessage('Skipping unsupported ChaCha20-Poly1305 test case');
|
||||
+ }
|
||||
+
|
||||
if (hasOpenSSL(3, 5)) {
|
||||
for (const name of ['ML-DSA-44', 'ML-DSA-65', 'ML-DSA-87']) {
|
||||
parameters.push({
|
||||
diff --git a/test/parallel/test-x509-escaping.js b/test/parallel/test-x509-escaping.js
|
||||
index c8fc4abbb108a6d6849e8452d97d29187da2ebe6..825ba4c8dce775f401080a0522565bb7a087bcc3 100644
|
||||
--- a/test/parallel/test-x509-escaping.js
|
||||
|
||||
@@ -8,24 +8,10 @@
|
||||
"parallel/test-cluster-primary-error",
|
||||
"parallel/test-cluster-primary-kill",
|
||||
"parallel/test-config-file",
|
||||
"parallel/test-crypto-aes-wrap",
|
||||
"parallel/test-crypto-authenticated",
|
||||
"parallel/test-crypto-authenticated-stream",
|
||||
"parallel/test-crypto-default-shake-lengths",
|
||||
"parallel/test-crypto-des3-wrap",
|
||||
"parallel/test-crypto-dh-group-setters",
|
||||
"parallel/test-crypto-dh-modp2",
|
||||
"parallel/test-crypto-dh-modp2-views",
|
||||
"parallel/test-crypto-dh-stateless",
|
||||
"parallel/test-crypto-ecb",
|
||||
"parallel/test-crypto-fips",
|
||||
"parallel/test-crypto-key-objects",
|
||||
"parallel/test-crypto-keygen",
|
||||
"parallel/test-crypto-keygen-deprecation",
|
||||
"parallel/test-crypto-rsa-dsa",
|
||||
"parallel/test-crypto-padding-aes256",
|
||||
"parallel/test-crypto-secure-heap",
|
||||
"parallel/test-dgram-send-cb-quelches-error",
|
||||
"parallel/test-domain-error-types",
|
||||
"parallel/test-fs-utimes-y2K38",
|
||||
"parallel/test-http2-clean-output",
|
||||
@@ -44,34 +30,10 @@
|
||||
"parallel/test-os-checked-function",
|
||||
"parallel/test-process-versions",
|
||||
"parallel/test-process-get-builtin",
|
||||
"parallel/test-repl",
|
||||
"parallel/test-repl-mode",
|
||||
"parallel/test-repl-underscore",
|
||||
"parallel/test-shadow-realm-custom-loaders",
|
||||
"parallel/test-snapshot-api",
|
||||
"parallel/test-snapshot-argv1",
|
||||
"parallel/test-snapshot-basic",
|
||||
"parallel/test-snapshot-cjs-main",
|
||||
"parallel/test-snapshot-cwd",
|
||||
"parallel/test-snapshot-console",
|
||||
"parallel/test-snapshot-config",
|
||||
"parallel/test-snapshot-dns-lookup-localhost",
|
||||
"parallel/test-snapshot-dns-lookup-localhost-promise",
|
||||
"parallel/test-snapshot-dns-resolve-localhost",
|
||||
"parallel/test-snapshot-dns-resolve-localhost-promise",
|
||||
"parallel/test-snapshot-error",
|
||||
"parallel/test-snapshot-eval",
|
||||
"parallel/test-snapshot-gzip",
|
||||
"parallel/test-snapshot-incompatible",
|
||||
"parallel/test-snapshot-namespaced-builtin",
|
||||
"parallel/test-snapshot-net",
|
||||
"parallel/test-snapshot-reproducible",
|
||||
"parallel/test-snapshot-stack-trace-limit",
|
||||
"parallel/test-snapshot-stack-trace-limit-mutation",
|
||||
"parallel/test-snapshot-typescript",
|
||||
"parallel/test-snapshot-umd",
|
||||
"parallel/test-snapshot-warning",
|
||||
"parallel/test-snapshot-weak-reference",
|
||||
"parallel/test-snapshot-worker",
|
||||
"parallel/test-snapshot",
|
||||
"parallel/test-strace-openat-openssl",
|
||||
"parallel/test-sqlite-backup",
|
||||
"parallel/test-max-old-space-size-percentage",
|
||||
@@ -107,15 +69,12 @@
|
||||
"parallel/test-tls-multi-key",
|
||||
"parallel/test-tls-multi-pfx",
|
||||
"parallel/test-tls-no-cert-required",
|
||||
"parallel/test-tls-no-sslv23.js",
|
||||
"parallel/test-tls-no-sslv23",
|
||||
"parallel/test-tls-options-boolean-check",
|
||||
"parallel/test-tls-passphrase",
|
||||
"parallel/test-tls-peer-certificate",
|
||||
"parallel/test-tls-pfx-authorizationerror",
|
||||
"parallel/test-tls-psk-alpn-callback-exception-handling",
|
||||
"parallel/test-tls-psk-circuit",
|
||||
"parallel/test-tls-reduced-SECLEVEL-in-cipher",
|
||||
"parallel/test-tls-root-certificates",
|
||||
"parallel/test-tls-server-failed-handshake-emits-clienterror",
|
||||
"parallel/test-tls-set-ciphers",
|
||||
"parallel/test-tls-set-ciphers-error",
|
||||
@@ -125,45 +84,13 @@
|
||||
"parallel/test-tls-socket-failed-handshake-emits-error",
|
||||
"parallel/test-tls-ticket",
|
||||
"parallel/test-tls-ticket-cluster",
|
||||
"parallel/test-trace-events-all",
|
||||
"parallel/test-trace-events-async-hooks",
|
||||
"parallel/test-trace-events-binding",
|
||||
"parallel/test-trace-events-bootstrap",
|
||||
"parallel/test-trace-events-category-used",
|
||||
"parallel/test-trace-events-console",
|
||||
"parallel/test-trace-events-dynamic-enable",
|
||||
"parallel/test-trace-events-dynamic-enable-workers-disabled",
|
||||
"parallel/test-trace-events-environment",
|
||||
"parallel/test-trace-events-file-pattern",
|
||||
"parallel/test-trace-events-fs-async",
|
||||
"parallel/test-trace-events-fs-sync",
|
||||
"parallel/test-trace-events-http",
|
||||
"parallel/test-trace-events-metadata",
|
||||
"parallel/test-trace-events-net",
|
||||
"parallel/test-trace-events-none",
|
||||
"parallel/test-trace-events-process-exit",
|
||||
"parallel/test-trace-events-promises",
|
||||
"parallel/test-trace-events-threadpool",
|
||||
"parallel/test-trace-events-v8",
|
||||
"parallel/test-trace-events-vm",
|
||||
"parallel/test-trace-events-worker-metadata",
|
||||
"parallel/test-trace-events",
|
||||
"parallel/test-tz-version",
|
||||
"parallel/test-webcrypto-derivebits-cfrg",
|
||||
"parallel/test-webcrypto-derivekey-cfrg",
|
||||
"parallel/test-webcrypto-encrypt-decrypt",
|
||||
"parallel/test-webcrypto-encrypt-decrypt-aes",
|
||||
"parallel/test-webcrypto-encrypt-decrypt-rsa",
|
||||
"parallel/test-webcrypto-export-import-cfrg",
|
||||
"parallel/test-webcrypto-keygen",
|
||||
"parallel/test-webcrypto-sign-verify-eddsa",
|
||||
"parallel/test-webcrypto-wrap-unwrap",
|
||||
"parallel/test-worker-no-sab",
|
||||
"parallel/test-worker-resource-limits",
|
||||
"parallel/test-zlib-unused-weak",
|
||||
"report/test-report-fatalerror-oomerror-compact",
|
||||
"report/test-report-fatalerror-oomerror-directory",
|
||||
"report/test-report-fatalerror-oomerror-filename",
|
||||
"report/test-report-fatalerror-oomerror-set",
|
||||
"report/test-report-fatalerror-oomerror",
|
||||
"report/test-report-getreport",
|
||||
"report/test-report-signal",
|
||||
"report/test-report-uncaught-exception",
|
||||
@@ -173,12 +100,6 @@
|
||||
"report/test-report-writereport",
|
||||
"sea/test-single-executable-blob-config",
|
||||
"sea/test-single-executable-blob-config-errors",
|
||||
"sequential/test-single-executable-application",
|
||||
"sequential/test-single-executable-application-disable-experimental-sea-warning",
|
||||
"sequential/test-single-executable-application-empty",
|
||||
"sequential/test-single-executable-application-snapshot",
|
||||
"sequential/test-single-executable-application-snapshot-and-code-cache",
|
||||
"sequential/test-single-executable-application-use-code-cache",
|
||||
"sequential/test-tls-connect",
|
||||
"wpt/test-webcrypto",
|
||||
"wasm-allocation/test-wasm-allocation"
|
||||
|
||||
Reference in New Issue
Block a user