crypto: subject some algorithms in Web Cryptography on BoringSSL absence · nodejs/node@a95386f
1+import * as crypto from 'node:crypto'
2+13import { hasOpenSSL } from '../../common/crypto.js'
2435const pqc = hasOpenSSL(3, 5);
6+const shake128 = crypto.getHashes().includes('shake128');
7+const shake256 = crypto.getHashes().includes('shake256');
8+const chacha = crypto.getCiphers().includes('chacha20-poly1305');
49510export const vectors = {
11+'digest': [
12+[false, 'cSHAKE128'],
13+[shake128, { name: 'cSHAKE128', length: 128 }],
14+[shake128, { name: 'cSHAKE128', length: 128, functionName: Buffer.alloc(0), customization: Buffer.alloc(0) }],
15+[false, { name: 'cSHAKE128', length: 128, functionName: Buffer.alloc(1) }],
16+[false, { name: 'cSHAKE128', length: 128, customization: Buffer.alloc(1) }],
17+[false, { name: 'cSHAKE128', length: 127 }],
18+[false, 'cSHAKE256'],
19+[shake256, { name: 'cSHAKE256', length: 256 }],
20+[shake256, { name: 'cSHAKE256', length: 256, functionName: Buffer.alloc(0), customization: Buffer.alloc(0) }],
21+[false, { name: 'cSHAKE256', length: 256, functionName: Buffer.alloc(1) }],
22+[false, { name: 'cSHAKE256', length: 256, customization: Buffer.alloc(1) }],
23+[false, { name: 'cSHAKE256', length: 255 }],
24+],
625'sign': [
726[pqc, 'ML-DSA-44'],
827[pqc, 'ML-DSA-65'],
@@ -12,19 +31,19 @@ export const vectors = {
1231[pqc, 'ML-DSA-44'],
1332[pqc, 'ML-DSA-65'],
1433[pqc, 'ML-DSA-87'],
15-[true, 'ChaCha20-Poly1305'],
34+[chacha, 'ChaCha20-Poly1305'],
1635],
1736'importKey': [
1837[pqc, 'ML-DSA-44'],
1938[pqc, 'ML-DSA-65'],
2039[pqc, 'ML-DSA-87'],
21-[true, 'ChaCha20-Poly1305'],
40+[chacha, 'ChaCha20-Poly1305'],
2241],
2342'exportKey': [
2443[pqc, 'ML-DSA-44'],
2544[pqc, 'ML-DSA-65'],
2645[pqc, 'ML-DSA-87'],
27-[true, 'ChaCha20-Poly1305'],
46+[chacha, 'ChaCha20-Poly1305'],
2847],
2948'getPublicKey': [
3049[true, 'RSA-OAEP'],
@@ -44,9 +63,9 @@ export const vectors = {
4463[false, 'ChaCha20-Poly1305'],
4564],
4665'encrypt': [
47-[true, { name: 'ChaCha20-Poly1305', iv: Buffer.alloc(12) }],
66+[chacha, { name: 'ChaCha20-Poly1305', iv: Buffer.alloc(12) }],
4867[false, { name: 'ChaCha20-Poly1305', iv: Buffer.alloc(16) }],
49-[true, { name: 'ChaCha20-Poly1305', iv: Buffer.alloc(12), tagLength: 128 }],
68+[chacha, { name: 'ChaCha20-Poly1305', iv: Buffer.alloc(12), tagLength: 128 }],
5069[false, { name: 'ChaCha20-Poly1305', iv: Buffer.alloc(12), tagLength: 64 }],
5170[false, 'ChaCha20-Poly1305'],
5271]