2
2
3
3
<!-- YAML
4
4
changes:
5
+ - version: REPLACEME
6
+ pr-url: https://github.com/nodejs/node/pull/59544
7
+ description: Argon2 algorithms are now supported.
5
8
- version: REPLACEME
6
9
pr-url: https://github.com/nodejs/node/pull/59365
7
10
description: ChaCha20-Poly1305 algorithm is now supported.
@@ -101,6 +104,9 @@ WICG proposal:
101
104
102
105
Algorithms:
103
106
107
+ * ` 'Argon2d' ` [ ^ openssl32 ]
108
+ * ` 'Argon2i' ` [ ^ openssl32 ]
109
+ * ` 'Argon2id' ` [ ^ openssl32 ]
104
110
* ` 'ChaCha20-Poly1305' `
105
111
* ` 'cSHAKE128' `
106
112
* ` 'cSHAKE256' `
@@ -489,6 +495,9 @@ implementation and the APIs supported for each:
489
495
| ` ' AES-CTR' ` | ✔ | ✔ | ✔ | ✔ | ✔ | | | | |
490
496
| ` ' AES-GCM' ` | ✔ | ✔ | ✔ | ✔ | ✔ | | | | |
491
497
| ` ' AES-KW' ` | ✔ | ✔ | ✔ | | ✔ | | | | |
498
+ | ` ' Argon2d' ` [^modern-algos] | | | ✔ | | | ✔ | | | |
499
+ | ` ' Argon2i' ` [^modern-algos] | | | ✔ | | | ✔ | | | |
500
+ | ` ' Argon2id' ` [^modern-algos] | | | ✔ | | | ✔ | | | |
492
501
| ` ' ChaCha20-Poly1305' ` [^modern-algos] | ✔ | ✔ | ✔ | ✔ | ✔ | | | | |
493
502
| ` ' cSHAKE128' ` [^modern-algos] | | | | | | | | ✔ | |
494
503
| ` ' cSHAKE256' ` [^modern-algos] | | | | | | | | ✔ | |
@@ -641,6 +650,9 @@ Valid key usages depend on the key algorithm (identified by
641
650
| ` ' AES-CTR' ` | ✔ | ✔ | | | | | ✔ | ✔ |
642
651
| ` ' AES-GCM' ` | ✔ | ✔ | | | | | ✔ | ✔ |
643
652
| ` ' AES-KW' ` | | | | | | | ✔ | ✔ |
653
+ | ` ' Argon2d' ` [^modern-algos] | | | | | ✔ | ✔ | | |
654
+ | ` ' Argon2i' ` [^modern-algos] | | | | | ✔ | ✔ | | |
655
+ | ` ' Argon2id' ` [^modern-algos] | | | | | ✔ | ✔ | | |
644
656
| ` ' ChaCha20-Poly1305' ` [^modern-algos] | ✔ | ✔ | | | | | ✔ | ✔ |
645
657
| ` ' ECDH' ` | | | | | ✔ | ✔ | | |
646
658
| ` ' ECDSA' ` | | | ✔ | ✔ | | | | |
@@ -743,6 +755,9 @@ The algorithms currently supported include:
743
755
<!-- YAML
744
756
added: v15.0.0
745
757
changes:
758
+ - version: REPLACEME
759
+ pr-url: https://github.com/nodejs/node/pull/59544
760
+ description: Argon2 algorithms are now supported.
746
761
- version:
747
762
- v22.5.0
748
763
- v20.17.0
@@ -759,7 +774,7 @@ changes:
759
774
760
775
<!--lint disable maximum-line-length remark-lint-->
761
776
762
- * ` algorithm` {EcdhKeyDeriveParams|HkdfParams|Pbkdf2Params}
777
+ * ` algorithm` {EcdhKeyDeriveParams|HkdfParams|Pbkdf2Params|Argon2Params }
763
778
* ` baseKey` {CryptoKey}
764
779
* ` length` {number|null} **Default:** ` null `
765
780
* Returns: {Promise} Fulfills with an {ArrayBuffer} upon success.
@@ -779,6 +794,9 @@ containing the generated data.
779
794
780
795
The algorithms currently supported include:
781
796
797
+ * ` ' Argon2d' ` [^modern-algos]
798
+ * ` ' Argon2i' ` [^modern-algos]
799
+ * ` ' Argon2id' ` [^modern-algos]
782
800
* ` ' ECDH' `
783
801
* ` ' HKDF' `
784
802
* ` ' PBKDF2' `
@@ -790,6 +808,9 @@ The algorithms currently supported include:
790
808
<!-- YAML
791
809
added: v15.0.0
792
810
changes:
811
+ - version: REPLACEME
812
+ pr-url: https://github.com/nodejs/node/pull/59544
813
+ description: Argon2 algorithms are now supported.
793
814
- version:
794
815
- v18.4.0
795
816
- v16.17.0
@@ -799,7 +820,7 @@ changes:
799
820
800
821
<!--lint disable maximum-line-length remark-lint-->
801
822
802
- * ` algorithm` {EcdhKeyDeriveParams|HkdfParams|Pbkdf2Params}
823
+ * ` algorithm` {EcdhKeyDeriveParams|HkdfParams|Pbkdf2Params|Argon2Params }
803
824
* ` baseKey` {CryptoKey}
804
825
* ` derivedKeyAlgorithm` {string|Algorithm|HmacImportParams|AesDerivedKeyParams}
805
826
* ` extractable` {boolean}
@@ -819,6 +840,9 @@ generate raw keying material, then passing the result into the
819
840
820
841
The algorithms currently supported include:
821
842
843
+ * ` ' Argon2d' ` [^modern-algos]
844
+ * ` ' Argon2i' ` [^modern-algos]
845
+ * ` ' Argon2id' ` [^modern-algos]
822
846
* ` ' ECDH' `
823
847
* ` ' HKDF' `
824
848
* ` ' PBKDF2' `
@@ -1054,7 +1078,7 @@ as the given `format` to create a {CryptoKey} instance using the provided
1054
1078
` algorithm` , ` extractable` , and ` keyUsages` arguments. If the import is
1055
1079
successful, the returned promise will be resolved with the created {CryptoKey}.
1056
1080
1057
- If importing a ` ' PBKDF2 ' ` key , ` extractable` must be ` false ` .
1081
+ If importing KDF algorithm keys , ` extractable` must be ` false ` .
1058
1082
1059
1083
The algorithms currently supported include:
1060
1084
@@ -1064,6 +1088,9 @@ The algorithms currently supported include:
1064
1088
| ` ' AES-CTR' ` | | | ✔ | ✔ | ✔ | | |
1065
1089
| ` ' AES-GCM' ` | | | ✔ | ✔ | ✔ | | |
1066
1090
| ` ' AES-KW' ` | | | ✔ | ✔ | ✔ | | |
1091
+ | ` ' Argon2d' ` [^modern-algos] | | | | | ✔ | | |
1092
+ | ` ' Argon2i' ` [^modern-algos] | | | | | ✔ | | |
1093
+ | ` ' Argon2id' ` [^modern-algos] | | | | | ✔ | | |
1067
1094
| ` ' ChaCha20-Poly1305' ` [^modern-algos] | | | ✔ | | ✔ | | |
1068
1095
| ` ' ECDH' ` | ✔ | ✔ | ✔ | ✔ | | ✔ | |
1069
1096
| ` ' ECDSA' ` | ✔ | ✔ | ✔ | ✔ | | ✔ | |
@@ -1470,6 +1497,90 @@ added: v15.0.0
1470
1497
* Type: {string} Must be one of ` ' AES-CBC' ` , ` ' AES-CTR' ` , ` ' AES-GCM' ` , or
1471
1498
` ' AES-KW' `
1472
1499
1500
+ ### Class: ` Argon2Params`
1501
+
1502
+ <!-- YAML
1503
+ added: REPLACEME
1504
+ -->
1505
+
1506
+ #### ` argon2Params .associatedData `
1507
+
1508
+ <!-- YAML
1509
+ added: REPLACEME
1510
+ -->
1511
+
1512
+ * Type: {ArrayBuffer|TypedArray|DataView|Buffer}
1513
+
1514
+ Represents the optional associated data.
1515
+
1516
+ #### ` argon2Params .memory `
1517
+
1518
+ <!-- YAML
1519
+ added: REPLACEME
1520
+ -->
1521
+
1522
+ * Type: {number}
1523
+
1524
+ Represents the memory size in kibibytes. It must be at least 8 times the degree of parallelism.
1525
+
1526
+ #### ` argon2Params .name `
1527
+
1528
+ <!-- YAML
1529
+ added: REPLACEME
1530
+ -->
1531
+
1532
+ * Type: {string} Must be one of ` ' Argon2d' ` , ` ' Argon2i' ` , or ` ' Argon2id' ` .
1533
+
1534
+ #### ` argon2Params .nonce `
1535
+
1536
+ <!-- YAML
1537
+ added: REPLACEME
1538
+ -->
1539
+
1540
+ * Type: {ArrayBuffer|TypedArray|DataView|Buffer}
1541
+
1542
+ Represents the nonce, which is a salt for password hashing applications.
1543
+
1544
+ #### ` argon2Params .parallelism `
1545
+
1546
+ <!-- YAML
1547
+ added: REPLACEME
1548
+ -->
1549
+
1550
+ * Type: {number}
1551
+
1552
+ Represents the degree of parallelism.
1553
+
1554
+ #### ` argon2Params .passes `
1555
+
1556
+ <!-- YAML
1557
+ added: REPLACEME
1558
+ -->
1559
+
1560
+ * Type: {number}
1561
+
1562
+ Represents the number of passes.
1563
+
1564
+ #### ` argon2Params .secretValue `
1565
+
1566
+ <!-- YAML
1567
+ added: REPLACEME
1568
+ -->
1569
+
1570
+ * Type: {ArrayBuffer|TypedArray|DataView|Buffer}
1571
+
1572
+ Represents the optional secret value.
1573
+
1574
+ #### ` argon2Params .version `
1575
+
1576
+ <!-- YAML
1577
+ added: REPLACEME
1578
+ -->
1579
+
1580
+ * Type: {number}
1581
+
1582
+ Represents the Argon2 version number. The default and currently only defined version is ` 19 ` (` 0x13 ` ).
1583
+
1473
1584
### Class: ` ContextParams`
1474
1585
1475
1586
<!-- YAML
@@ -2178,6 +2289,8 @@ The length (in bytes) of the random salt to use.
2178
2289
2179
2290
[^modern-algos]: See [Modern Algorithms in the Web Cryptography API][]
2180
2291
2292
+ [^openssl32]: Requires OpenSSL >= 3.2
2293
+
2181
2294
[^openssl35]: Requires OpenSSL >= 3.5
2182
2295
2183
2296
[JSON Web Key]: https://tools.ietf.org/html/rfc7517
0 commit comments