crypto: subject some algorithms in Web Cryptography on BoringSSL absence · nodejs/node@a95386f

1+

import * as crypto from 'node:crypto'

2+13

import { hasOpenSSL } from '../../common/crypto.js'

2435

const 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');

49510

export 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

]