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/59569
7
10
description: ML-KEM algorithms are now supported.
@@ -104,15 +107,18 @@ WICG proposal:
104
107
105
108
Algorithms:
106
109
110
+ * ` 'Argon2d' ` [ ^ openssl32 ]
111
+ * ` 'Argon2i' ` [ ^ openssl32 ]
112
+ * ` 'Argon2id' ` [ ^ openssl32 ]
107
113
* ` 'ChaCha20-Poly1305' `
108
114
* ` 'cSHAKE128' `
109
115
* ` 'cSHAKE256' `
110
116
* ` 'ML-DSA-44' ` [ ^ openssl35 ]
111
117
* ` 'ML-DSA-65' ` [ ^ openssl35 ]
112
118
* ` 'ML-DSA-87' ` [ ^ openssl35 ]
113
- * ` 'ML-KEM-1024' ` [ ^ openssl35 ]
114
119
* ` 'ML-KEM-512' ` [ ^ openssl35 ]
115
120
* ` 'ML-KEM-768' ` [ ^ openssl35 ]
121
+ * ` 'ML-KEM-1024' ` [ ^ openssl35 ]
116
122
* ` 'SHA3-256' `
117
123
* ` 'SHA3-384' `
118
124
* ` 'SHA3-512' `
@@ -501,6 +507,9 @@ implementation and the APIs supported for each:
501
507
| ` ' AES-CTR' ` | ✔ | ✔ | ✔ | |
502
508
| ` ' AES-GCM' ` | ✔ | ✔ | ✔ | |
503
509
| ` ' AES-KW' ` | ✔ | ✔ | ✔ | |
510
+ | ` ' Argon2d' ` | | | ✔ | |
511
+ | ` ' Argon2i' ` | | | ✔ | |
512
+ | ` ' Argon2id' ` | | | ✔ | |
504
513
| ` ' ChaCha20-Poly1305' ` [^modern-algos] | ✔ | ✔ | ✔ | |
505
514
| ` ' ECDH' ` | ✔ | ✔ | ✔ | ✔ |
506
515
| ` ' ECDSA' ` | ✔ | ✔ | ✔ | ✔ |
@@ -539,6 +548,9 @@ implementation and the APIs supported for each:
539
548
| ` ' AES-CTR' ` | ✔ | | | ✔ | | |
540
549
| ` ' AES-GCM' ` | ✔ | | | ✔ | | |
541
550
| ` ' AES-KW' ` | | | | ✔ | | |
551
+ | ` ' Argon2d' ` | | | ✔ | | | |
552
+ | ` ' Argon2i' ` | | | ✔ | | | |
553
+ | ` ' Argon2id' ` | | | ✔ | | | |
542
554
| ` ' ChaCha20-Poly1305' ` [^modern-algos] | ✔ | | | ✔ | | |
543
555
| ` ' cSHAKE128' ` [^modern-algos] | | | | | | ✔ |
544
556
| ` ' cSHAKE256' ` [^modern-algos] | | | | | | ✔ |
@@ -707,6 +719,9 @@ Valid key usages depend on the key algorithm (identified by
707
719
| ` ' AES-CTR' ` | ✔ | | | ✔ | |
708
720
| ` ' AES-GCM' ` | ✔ | | | ✔ | |
709
721
| ` ' AES-KW' ` | | | | ✔ | |
722
+ | ` ' Argon2d' ` | | | ✔ | | |
723
+ | ` ' Argon2i' ` | | | ✔ | | |
724
+ | ` ' Argon2id' ` | | | ✔ | | |
710
725
| ` ' ChaCha20-Poly1305' ` [^modern-algos] | ✔ | | | ✔ | |
711
726
| ` ' ECDH' ` | | | ✔ | | |
712
727
| ` ' ECDSA' ` | | ✔ | | | |
@@ -853,6 +868,9 @@ The algorithms currently supported include:
853
868
<!-- YAML
854
869
added: v15.0.0
855
870
changes:
871
+ - version: REPLACEME
872
+ pr-url: https://github.com/nodejs/node/pull/59544
873
+ description: Argon2 algorithms are now supported.
856
874
- version:
857
875
- v22.5.0
858
876
- v20.17.0
@@ -869,7 +887,7 @@ changes:
869
887
870
888
<!--lint disable maximum-line-length remark-lint-->
871
889
872
- * ` algorithm` {EcdhKeyDeriveParams|HkdfParams|Pbkdf2Params}
890
+ * ` algorithm` {EcdhKeyDeriveParams|HkdfParams|Pbkdf2Params|Argon2Params }
873
891
* ` baseKey` {CryptoKey}
874
892
* ` length` {number|null} **Default:** ` null `
875
893
* Returns: {Promise} Fulfills with an {ArrayBuffer} upon success.
@@ -889,6 +907,9 @@ containing the generated data.
889
907
890
908
The algorithms currently supported include:
891
909
910
+ * ` ' Argon2d' ` [^modern-algos]
911
+ * ` ' Argon2i' ` [^modern-algos]
912
+ * ` ' Argon2id' ` [^modern-algos]
892
913
* ` ' ECDH' `
893
914
* ` ' HKDF' `
894
915
* ` ' PBKDF2' `
@@ -900,6 +921,9 @@ The algorithms currently supported include:
900
921
<!-- YAML
901
922
added: v15.0.0
902
923
changes:
924
+ - version: REPLACEME
925
+ pr-url: https://github.com/nodejs/node/pull/59544
926
+ description: Argon2 algorithms are now supported.
903
927
- version:
904
928
- v18.4.0
905
929
- v16.17.0
@@ -909,7 +933,7 @@ changes:
909
933
910
934
<!--lint disable maximum-line-length remark-lint-->
911
935
912
- * ` algorithm` {EcdhKeyDeriveParams|HkdfParams|Pbkdf2Params}
936
+ * ` algorithm` {EcdhKeyDeriveParams|HkdfParams|Pbkdf2Params|Argon2Params }
913
937
* ` baseKey` {CryptoKey}
914
938
* ` derivedKeyAlgorithm` {string|Algorithm|HmacImportParams|AesDerivedKeyParams}
915
939
* ` extractable` {boolean}
@@ -929,6 +953,9 @@ generate raw keying material, then passing the result into the
929
953
930
954
The algorithms currently supported include:
931
955
956
+ * ` ' Argon2d' ` [^modern-algos]
957
+ * ` ' Argon2i' ` [^modern-algos]
958
+ * ` ' Argon2id' ` [^modern-algos]
932
959
* ` ' ECDH' `
933
960
* ` ' HKDF' `
934
961
* ` ' PBKDF2' `
@@ -1218,7 +1245,7 @@ as the given `format` to create a {CryptoKey} instance using the provided
1218
1245
` algorithm` , ` extractable` , and ` keyUsages` arguments. If the import is
1219
1246
successful, the returned promise will be resolved with the created {CryptoKey}.
1220
1247
1221
- If importing a ` ' PBKDF2 ' ` key , ` extractable` must be ` false ` .
1248
+ If importing KDF algorithm keys , ` extractable` must be ` false ` .
1222
1249
1223
1250
The algorithms currently supported include:
1224
1251
@@ -1228,6 +1255,9 @@ The algorithms currently supported include:
1228
1255
| ` ' AES-CTR' ` | | | ✔ | ✔ | ✔ | | |
1229
1256
| ` ' AES-GCM' ` | | | ✔ | ✔ | ✔ | | |
1230
1257
| ` ' AES-KW' ` | | | ✔ | ✔ | ✔ | | |
1258
+ | ` ' Argon2d' ` [^modern-algos] | | | | | ✔ | | |
1259
+ | ` ' Argon2i' ` [^modern-algos] | | | | | ✔ | | |
1260
+ | ` ' Argon2id' ` [^modern-algos] | | | | | ✔ | | |
1231
1261
| ` ' ChaCha20-Poly1305' ` [^modern-algos] | | | ✔ | | ✔ | | |
1232
1262
| ` ' ECDH' ` | ✔ | ✔ | ✔ | ✔ | | ✔ | |
1233
1263
| ` ' ECDSA' ` | ✔ | ✔ | ✔ | ✔ | | ✔ | |
@@ -1640,6 +1670,90 @@ added: v15.0.0
1640
1670
* Type: {string} Must be one of ` ' AES-CBC' ` , ` ' AES-CTR' ` , ` ' AES-GCM' ` , or
1641
1671
` ' AES-KW' `
1642
1672
1673
+ ### Class: ` Argon2Params`
1674
+
1675
+ <!-- YAML
1676
+ added: REPLACEME
1677
+ -->
1678
+
1679
+ #### ` argon2Params .associatedData `
1680
+
1681
+ <!-- YAML
1682
+ added: REPLACEME
1683
+ -->
1684
+
1685
+ * Type: {ArrayBuffer|TypedArray|DataView|Buffer}
1686
+
1687
+ Represents the optional associated data.
1688
+
1689
+ #### ` argon2Params .memory `
1690
+
1691
+ <!-- YAML
1692
+ added: REPLACEME
1693
+ -->
1694
+
1695
+ * Type: {number}
1696
+
1697
+ Represents the memory size in kibibytes. It must be at least 8 times the degree of parallelism.
1698
+
1699
+ #### ` argon2Params .name `
1700
+
1701
+ <!-- YAML
1702
+ added: REPLACEME
1703
+ -->
1704
+
1705
+ * Type: {string} Must be one of ` ' Argon2d' ` , ` ' Argon2i' ` , or ` ' Argon2id' ` .
1706
+
1707
+ #### ` argon2Params .nonce `
1708
+
1709
+ <!-- YAML
1710
+ added: REPLACEME
1711
+ -->
1712
+
1713
+ * Type: {ArrayBuffer|TypedArray|DataView|Buffer}
1714
+
1715
+ Represents the nonce, which is a salt for password hashing applications.
1716
+
1717
+ #### ` argon2Params .parallelism `
1718
+
1719
+ <!-- YAML
1720
+ added: REPLACEME
1721
+ -->
1722
+
1723
+ * Type: {number}
1724
+
1725
+ Represents the degree of parallelism.
1726
+
1727
+ #### ` argon2Params .passes `
1728
+
1729
+ <!-- YAML
1730
+ added: REPLACEME
1731
+ -->
1732
+
1733
+ * Type: {number}
1734
+
1735
+ Represents the number of passes.
1736
+
1737
+ #### ` argon2Params .secretValue `
1738
+
1739
+ <!-- YAML
1740
+ added: REPLACEME
1741
+ -->
1742
+
1743
+ * Type: {ArrayBuffer|TypedArray|DataView|Buffer}
1744
+
1745
+ Represents the optional secret value.
1746
+
1747
+ #### ` argon2Params .version `
1748
+
1749
+ <!-- YAML
1750
+ added: REPLACEME
1751
+ -->
1752
+
1753
+ * Type: {number}
1754
+
1755
+ Represents the Argon2 version number. The default and currently only defined version is ` 19 ` (` 0x13 ` ).
1756
+
1643
1757
### Class: ` ContextParams`
1644
1758
1645
1759
<!-- YAML
@@ -2392,6 +2506,8 @@ The length (in bytes) of the random salt to use.
2392
2506
2393
2507
[^modern-algos]: See [Modern Algorithms in the Web Cryptography API][]
2394
2508
2509
+ [^openssl32]: Requires OpenSSL >= 3.2
2510
+
2395
2511
[^openssl35]: Requires OpenSSL >= 3.5
2396
2512
2397
2513
[JSON Web Key]: https://tools.ietf.org/html/rfc7517
0 commit comments