22
33<!--  YAML
44changes: 
5+   - version: REPLACEME 
6+     pr-url: https://github.com/nodejs/node/pull/59544 
7+     description: Argon2 algorithms are now supported. 
58  - version: v24.7.0 
69    pr-url: https://github.com/nodejs/node/pull/59539 
710    description: AES-OCB algorithm is now supported. 
@@ -107,15 +110,18 @@ WICG proposal:
107110Algorithms:
108111
109112*  ` 'AES-OCB' ` [ ^ openssl30 ] 
113+ *  ` 'Argon2d' ` [ ^ openssl32 ] 
114+ *  ` 'Argon2i' ` [ ^ openssl32 ] 
115+ *  ` 'Argon2id' ` [ ^ openssl32 ] 
110116*  ` 'ChaCha20-Poly1305' ` 
111117*  ` 'cSHAKE128' ` 
112118*  ` 'cSHAKE256' ` 
113119*  ` 'ML-DSA-44' ` [ ^ openssl35 ] 
114120*  ` 'ML-DSA-65' ` [ ^ openssl35 ] 
115121*  ` 'ML-DSA-87' ` [ ^ openssl35 ] 
116- *  ` 'ML-KEM-1024' ` [ ^ openssl35 ] 
117122*  ` 'ML-KEM-512' ` [ ^ openssl35 ] 
118123*  ` 'ML-KEM-768' ` [ ^ openssl35 ] 
124+ *  ` 'ML-KEM-1024' ` [ ^ openssl35 ] 
119125*  ` 'SHA3-256' ` 
120126*  ` 'SHA3-384' ` 
121127*  ` 'SHA3-512' ` 
@@ -505,6 +511,9 @@ implementation and the APIs supported for each:
505511| `  ' AES-GCM' `                           | ✔                          | ✔                        | ✔                        |                             |
506512| `  ' AES-KW' `                            | ✔                          | ✔                        | ✔                        |                             |
507513| `  ' AES-OCB' `                           | ✔                          | ✔                        | ✔                        |                             |
514+ | `  ' Argon2d' `                           |                            |                          | ✔                        |                             |
515+ | `  ' Argon2i' `                           |                            |                          | ✔                        |                             |
516+ | `  ' Argon2id' `                          |                            |                          | ✔                        |                             |
508517| `  ' ChaCha20-Poly1305' ` [^modern-algos] | ✔                          | ✔                        | ✔                        |                             |
509518| `  ' ECDH' `                              | ✔                          | ✔                        | ✔                        | ✔                           |
510519| `  ' ECDSA' `                             | ✔                          | ✔                        | ✔                        | ✔                           |
@@ -544,6 +553,9 @@ implementation and the APIs supported for each:
544553| `  ' AES-GCM' `                           | ✔          |                    |                        | ✔            |                   |        |
545554| `  ' AES-KW' `                            |            |                    |                        | ✔            |                   |        |
546555| `  ' AES-OCB' `                           | ✔          |                    |                        | ✔            |                   |        |
556+ | `  ' Argon2d' `                           |            |                    | ✔                      |              |                   |        |
557+ | `  ' Argon2i' `                           |            |                    | ✔                      |              |                   |        |
558+ | `  ' Argon2id' `                          |            |                    | ✔                      |              |                   |        |
547559| `  ' ChaCha20-Poly1305' ` [^modern-algos] | ✔          |                    |                        | ✔            |                   |        |
548560| `  ' cSHAKE128' ` [^modern-algos]         |            |                    |                        |              |                   | ✔      |
549561| `  ' cSHAKE256' ` [^modern-algos]         |            |                    |                        |              |                   | ✔      |
@@ -713,6 +725,9 @@ Valid key usages depend on the key algorithm (identified by
713725| `  ' AES-GCM' `                           | ✔          |                    |                        | ✔            |                   |
714726| `  ' AES-KW' `                            |            |                    |                        | ✔            |                   |
715727| `  ' AES-OCB' `                           | ✔          |                    |                        | ✔            |                   |
728+ | `  ' Argon2d' `                           |            |                    | ✔                      |              |                   |
729+ | `  ' Argon2i' `                           |            |                    | ✔                      |              |                   |
730+ | `  ' Argon2id' `                          |            |                    | ✔                      |              |                   |
716731| `  ' ChaCha20-Poly1305' ` [^modern-algos] | ✔          |                    |                        | ✔            |                   |
717732| `  ' ECDH' `                              |            |                    | ✔                      |              |                   |
718733| `  ' ECDSA' `                             |            | ✔                  |                        |              |                   |
@@ -863,6 +878,9 @@ The algorithms currently supported include:
863878<!-- YAML 
864879added: v15.0.0 
865880changes: 
881+   - version: REPLACEME 
882+     pr-url: https://github.com/nodejs/node/pull/59544 
883+     description: Argon2 algorithms are now supported. 
866884  - version: 
867885    - v22.5.0 
868886    - v20.17.0 
@@ -879,7 +897,7 @@ changes:
879897
880898<!--lint disable maximum-line-length remark-lint--> 
881899
882- * `  algorithm`  {EcdhKeyDeriveParams|HkdfParams|Pbkdf2Params}
900+ * `  algorithm`  {EcdhKeyDeriveParams|HkdfParams|Pbkdf2Params|Argon2Params }
883901* `  baseKey`  {CryptoKey}
884902* `  length`  {number|null} **Default:** ` null ` 
885903* Returns: {Promise} Fulfills with an {ArrayBuffer} upon success. 
@@ -899,6 +917,9 @@ containing the generated data.
899917
900918The algorithms currently supported include: 
901919
920+ * `  ' Argon2d' ` [^modern-algos]
921+ * `  ' Argon2i' ` [^modern-algos]
922+ * `  ' Argon2id' ` [^modern-algos]
902923* `  ' ECDH' ` 
903924* `  ' HKDF' ` 
904925* `  ' PBKDF2' ` 
@@ -910,6 +931,9 @@ The algorithms currently supported include:
910931<!-- YAML 
911932added: v15.0.0 
912933changes: 
934+   - version: REPLACEME 
935+     pr-url: https://github.com/nodejs/node/pull/59544 
936+     description: Argon2 algorithms are now supported. 
913937  - version: 
914938    - v18.4.0 
915939    - v16.17.0 
@@ -919,7 +943,7 @@ changes:
919943
920944<!--lint disable maximum-line-length remark-lint--> 
921945
922- * `  algorithm`  {EcdhKeyDeriveParams|HkdfParams|Pbkdf2Params}
946+ * `  algorithm`  {EcdhKeyDeriveParams|HkdfParams|Pbkdf2Params|Argon2Params }
923947* `  baseKey`  {CryptoKey}
924948* `  derivedKeyAlgorithm`  {string|Algorithm|HmacImportParams|AesDerivedKeyParams}
925949* `  extractable`  {boolean}
@@ -939,6 +963,9 @@ generate raw keying material, then passing the result into the
939963
940964The algorithms currently supported include: 
941965
966+ * `  ' Argon2d' ` [^modern-algos]
967+ * `  ' Argon2i' ` [^modern-algos]
968+ * `  ' Argon2id' ` [^modern-algos]
942969* `  ' ECDH' ` 
943970* `  ' HKDF' ` 
944971* `  ' PBKDF2' ` 
@@ -1234,7 +1261,7 @@ as the given `format` to create a {CryptoKey} instance using the provided
12341261`  algorithm` , `  extractable` , and `  keyUsages`  arguments. If the import is
12351262successful, the returned promise will be resolved with the created {CryptoKey}. 
12361263
1237- If importing a  `  ' PBKDF2 ' `  key , `  extractable`  must be ` false ` .
1264+ If importing KDF algorithm keys , `  extractable`  must be ` false ` .
12381265
12391266The algorithms currently supported include: 
12401267
@@ -1245,6 +1272,9 @@ The algorithms currently supported include:
12451272| `  ' AES-GCM' `                           |          |           | ✔       | ✔       | ✔              |                |              |
12461273| `  ' AES-KW' `                            |          |           | ✔       | ✔       | ✔              |                |              |
12471274| `  ' AES-OCB' ` [^modern-algos]           |          |           | ✔       |         | ✔              |                |              |
1275+ | `  ' Argon2d' ` [^modern-algos]           |          |           |         |         | ✔              |                |              |
1276+ | `  ' Argon2i' ` [^modern-algos]           |          |           |         |         | ✔              |                |              |
1277+ | `  ' Argon2id' ` [^modern-algos]          |          |           |         |         | ✔              |                |              |
12481278| `  ' ChaCha20-Poly1305' ` [^modern-algos] |          |           | ✔       |         | ✔              |                |              |
12491279| `  ' ECDH' `                              | ✔        | ✔         | ✔       | ✔       |                | ✔              |              |
12501280| `  ' ECDSA' `                             | ✔        | ✔         | ✔       | ✔       |                | ✔              |              |
@@ -1665,6 +1695,90 @@ added: v15.0.0
16651695* Type: {string} Must be one of `  ' AES-CBC' ` , ` ' AES-CTR' ` , ` ' AES-GCM' ` , or
16661696  `  ' AES-KW' ` 
16671697
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+ 
16681782### Class: `  ContextParams` 
16691783
16701784<!-- YAML 
@@ -2419,6 +2533,8 @@ The length (in bytes) of the random salt to use.
24192533
24202534[^openssl30]: Requires OpenSSL >= 3.0 
24212535
2536+ [^openssl32]: Requires OpenSSL >= 3.2 
2537+ 
24222538[^openssl35]: Requires OpenSSL >= 3.5 
24232539
24242540[JSON Web Key]: https://tools.ietf.org/html/rfc7517 
0 commit comments