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: v24.7.0
6
9
pr-url: https://github.com/nodejs/node/pull/59539
7
10
description: AES-OCB algorithm is now supported.
@@ -107,15 +110,18 @@ WICG proposal:
107
110
Algorithms:
108
111
109
112
* ` 'AES-OCB' ` [ ^ openssl30 ]
113
+ * ` 'Argon2d' ` [ ^ openssl32 ]
114
+ * ` 'Argon2i' ` [ ^ openssl32 ]
115
+ * ` 'Argon2id' ` [ ^ openssl32 ]
110
116
* ` 'ChaCha20-Poly1305' `
111
117
* ` 'cSHAKE128' `
112
118
* ` 'cSHAKE256' `
113
119
* ` 'ML-DSA-44' ` [ ^ openssl35 ]
114
120
* ` 'ML-DSA-65' ` [ ^ openssl35 ]
115
121
* ` 'ML-DSA-87' ` [ ^ openssl35 ]
116
- * ` 'ML-KEM-1024' ` [ ^ openssl35 ]
117
122
* ` 'ML-KEM-512' ` [ ^ openssl35 ]
118
123
* ` 'ML-KEM-768' ` [ ^ openssl35 ]
124
+ * ` 'ML-KEM-1024' ` [ ^ openssl35 ]
119
125
* ` 'SHA3-256' `
120
126
* ` 'SHA3-384' `
121
127
* ` 'SHA3-512' `
@@ -505,6 +511,9 @@ implementation and the APIs supported for each:
505
511
| ` ' AES-GCM' ` | ✔ | ✔ | ✔ | |
506
512
| ` ' AES-KW' ` | ✔ | ✔ | ✔ | |
507
513
| ` ' AES-OCB' ` | ✔ | ✔ | ✔ | |
514
+ | ` ' Argon2d' ` | | | ✔ | |
515
+ | ` ' Argon2i' ` | | | ✔ | |
516
+ | ` ' Argon2id' ` | | | ✔ | |
508
517
| ` ' ChaCha20-Poly1305' ` [^modern-algos] | ✔ | ✔ | ✔ | |
509
518
| ` ' ECDH' ` | ✔ | ✔ | ✔ | ✔ |
510
519
| ` ' ECDSA' ` | ✔ | ✔ | ✔ | ✔ |
@@ -544,6 +553,9 @@ implementation and the APIs supported for each:
544
553
| ` ' AES-GCM' ` | ✔ | | | ✔ | | |
545
554
| ` ' AES-KW' ` | | | | ✔ | | |
546
555
| ` ' AES-OCB' ` | ✔ | | | ✔ | | |
556
+ | ` ' Argon2d' ` | | | ✔ | | | |
557
+ | ` ' Argon2i' ` | | | ✔ | | | |
558
+ | ` ' Argon2id' ` | | | ✔ | | | |
547
559
| ` ' ChaCha20-Poly1305' ` [^modern-algos] | ✔ | | | ✔ | | |
548
560
| ` ' cSHAKE128' ` [^modern-algos] | | | | | | ✔ |
549
561
| ` ' cSHAKE256' ` [^modern-algos] | | | | | | ✔ |
@@ -713,6 +725,9 @@ Valid key usages depend on the key algorithm (identified by
713
725
| ` ' AES-GCM' ` | ✔ | | | ✔ | |
714
726
| ` ' AES-KW' ` | | | | ✔ | |
715
727
| ` ' AES-OCB' ` | ✔ | | | ✔ | |
728
+ | ` ' Argon2d' ` | | | ✔ | | |
729
+ | ` ' Argon2i' ` | | | ✔ | | |
730
+ | ` ' Argon2id' ` | | | ✔ | | |
716
731
| ` ' ChaCha20-Poly1305' ` [^modern-algos] | ✔ | | | ✔ | |
717
732
| ` ' ECDH' ` | | | ✔ | | |
718
733
| ` ' ECDSA' ` | | ✔ | | | |
@@ -863,6 +878,9 @@ The algorithms currently supported include:
863
878
<!-- YAML
864
879
added: v15.0.0
865
880
changes:
881
+ - version: REPLACEME
882
+ pr-url: https://github.com/nodejs/node/pull/59544
883
+ description: Argon2 algorithms are now supported.
866
884
- version:
867
885
- v22.5.0
868
886
- v20.17.0
@@ -879,7 +897,7 @@ changes:
879
897
880
898
<!--lint disable maximum-line-length remark-lint-->
881
899
882
- * ` algorithm` {EcdhKeyDeriveParams|HkdfParams|Pbkdf2Params}
900
+ * ` algorithm` {EcdhKeyDeriveParams|HkdfParams|Pbkdf2Params|Argon2Params }
883
901
* ` baseKey` {CryptoKey}
884
902
* ` length` {number|null} **Default:** ` null `
885
903
* Returns: {Promise} Fulfills with an {ArrayBuffer} upon success.
@@ -899,6 +917,9 @@ containing the generated data.
899
917
900
918
The algorithms currently supported include:
901
919
920
+ * ` ' Argon2d' ` [^modern-algos]
921
+ * ` ' Argon2i' ` [^modern-algos]
922
+ * ` ' Argon2id' ` [^modern-algos]
902
923
* ` ' ECDH' `
903
924
* ` ' HKDF' `
904
925
* ` ' PBKDF2' `
@@ -910,6 +931,9 @@ The algorithms currently supported include:
910
931
<!-- YAML
911
932
added: v15.0.0
912
933
changes:
934
+ - version: REPLACEME
935
+ pr-url: https://github.com/nodejs/node/pull/59544
936
+ description: Argon2 algorithms are now supported.
913
937
- version:
914
938
- v18.4.0
915
939
- v16.17.0
@@ -919,7 +943,7 @@ changes:
919
943
920
944
<!--lint disable maximum-line-length remark-lint-->
921
945
922
- * ` algorithm` {EcdhKeyDeriveParams|HkdfParams|Pbkdf2Params}
946
+ * ` algorithm` {EcdhKeyDeriveParams|HkdfParams|Pbkdf2Params|Argon2Params }
923
947
* ` baseKey` {CryptoKey}
924
948
* ` derivedKeyAlgorithm` {string|Algorithm|HmacImportParams|AesDerivedKeyParams}
925
949
* ` extractable` {boolean}
@@ -939,6 +963,9 @@ generate raw keying material, then passing the result into the
939
963
940
964
The algorithms currently supported include:
941
965
966
+ * ` ' Argon2d' ` [^modern-algos]
967
+ * ` ' Argon2i' ` [^modern-algos]
968
+ * ` ' Argon2id' ` [^modern-algos]
942
969
* ` ' ECDH' `
943
970
* ` ' HKDF' `
944
971
* ` ' PBKDF2' `
@@ -1234,7 +1261,7 @@ as the given `format` to create a {CryptoKey} instance using the provided
1234
1261
` algorithm` , ` extractable` , and ` keyUsages` arguments. If the import is
1235
1262
successful, the returned promise will be resolved with the created {CryptoKey}.
1236
1263
1237
- If importing a ` ' PBKDF2 ' ` key , ` extractable` must be ` false ` .
1264
+ If importing KDF algorithm keys , ` extractable` must be ` false ` .
1238
1265
1239
1266
The algorithms currently supported include:
1240
1267
@@ -1245,6 +1272,9 @@ The algorithms currently supported include:
1245
1272
| ` ' AES-GCM' ` | | | ✔ | ✔ | ✔ | | |
1246
1273
| ` ' AES-KW' ` | | | ✔ | ✔ | ✔ | | |
1247
1274
| ` ' AES-OCB' ` [^modern-algos] | | | ✔ | | ✔ | | |
1275
+ | ` ' Argon2d' ` [^modern-algos] | | | | | ✔ | | |
1276
+ | ` ' Argon2i' ` [^modern-algos] | | | | | ✔ | | |
1277
+ | ` ' Argon2id' ` [^modern-algos] | | | | | ✔ | | |
1248
1278
| ` ' ChaCha20-Poly1305' ` [^modern-algos] | | | ✔ | | ✔ | | |
1249
1279
| ` ' ECDH' ` | ✔ | ✔ | ✔ | ✔ | | ✔ | |
1250
1280
| ` ' ECDSA' ` | ✔ | ✔ | ✔ | ✔ | | ✔ | |
@@ -1665,6 +1695,90 @@ added: v15.0.0
1665
1695
* Type: {string} Must be one of ` ' AES-CBC' ` , ` ' AES-CTR' ` , ` ' AES-GCM' ` , or
1666
1696
` ' AES-KW' `
1667
1697
1698
+ ### Class: ` Argon2Params`
1699
+
1700
+ <!-- YAML
1701
+ added: REPLACEME
1702
+ -->
1703
+
1704
+ #### ` argon2Params .associatedData `
1705
+
1706
+ <!-- YAML
1707
+ added: REPLACEME
1708
+ -->
1709
+
1710
+ * Type: {ArrayBuffer|TypedArray|DataView|Buffer}
1711
+
1712
+ Represents the optional associated data.
1713
+
1714
+ #### ` argon2Params .memory `
1715
+
1716
+ <!-- YAML
1717
+ added: REPLACEME
1718
+ -->
1719
+
1720
+ * Type: {number}
1721
+
1722
+ Represents the memory size in kibibytes. It must be at least 8 times the degree of parallelism.
1723
+
1724
+ #### ` argon2Params .name `
1725
+
1726
+ <!-- YAML
1727
+ added: REPLACEME
1728
+ -->
1729
+
1730
+ * Type: {string} Must be one of ` ' Argon2d' ` , ` ' Argon2i' ` , or ` ' Argon2id' ` .
1731
+
1732
+ #### ` argon2Params .nonce `
1733
+
1734
+ <!-- YAML
1735
+ added: REPLACEME
1736
+ -->
1737
+
1738
+ * Type: {ArrayBuffer|TypedArray|DataView|Buffer}
1739
+
1740
+ Represents the nonce, which is a salt for password hashing applications.
1741
+
1742
+ #### ` argon2Params .parallelism `
1743
+
1744
+ <!-- YAML
1745
+ added: REPLACEME
1746
+ -->
1747
+
1748
+ * Type: {number}
1749
+
1750
+ Represents the degree of parallelism.
1751
+
1752
+ #### ` argon2Params .passes `
1753
+
1754
+ <!-- YAML
1755
+ added: REPLACEME
1756
+ -->
1757
+
1758
+ * Type: {number}
1759
+
1760
+ Represents the number of passes.
1761
+
1762
+ #### ` argon2Params .secretValue `
1763
+
1764
+ <!-- YAML
1765
+ added: REPLACEME
1766
+ -->
1767
+
1768
+ * Type: {ArrayBuffer|TypedArray|DataView|Buffer}
1769
+
1770
+ Represents the optional secret value.
1771
+
1772
+ #### ` argon2Params .version `
1773
+
1774
+ <!-- YAML
1775
+ added: REPLACEME
1776
+ -->
1777
+
1778
+ * Type: {number}
1779
+
1780
+ Represents the Argon2 version number. The default and currently only defined version is ` 19 ` (` 0x13 ` ).
1781
+
1668
1782
### Class: ` ContextParams`
1669
1783
1670
1784
<!-- YAML
@@ -2419,6 +2533,8 @@ The length (in bytes) of the random salt to use.
2419
2533
2420
2534
[^openssl30]: Requires OpenSSL >= 3.0
2421
2535
2536
+ [^openssl32]: Requires OpenSSL >= 3.2
2537
+
2422
2538
[^openssl35]: Requires OpenSSL >= 3.5
2423
2539
2424
2540
[JSON Web Key]: https://tools.ietf.org/html/rfc7517
0 commit comments