Skip to content

Commit a5d0eb9

Browse files
2026-10-14, Version 24.22.0 'Krypton' (LTS)
Notable changes: crypto: * (SEMVER-MINOR) add crypto.parsePKCS12() (Brian Muenzenmeyer) #65627 * (SEMVER-MINOR) add a generic MAC API (Filip Skokan) #65553 * (SEMVER-MINOR) discover ciphers from OpenSSL providers (Filip Skokan) #65484 * (SEMVER-MINOR) discover hashes from OpenSSL providers (Filip Skokan) #65484 * (SEMVER-MINOR) enable SIV and GCM-SIV modes in Cipher/Decipher APIs (Filip Skokan) #63411 doc: * add araujogui to collaborators (Guilherme Araújo) #66090 * deprecate `Server.prototype._listen2` in `node:net` (Antoine du Hamel) #65593 net: * (SEMVER-MINOR) support sending net.BoundSocket to threads and child processes (Guy Bedford) #64725 perf_hooks: * (SEMVER-MINOR) implement SlidingWindowHistogram (James M Snell) #65825 * (SEMVER-MINOR) implement qrde analysis support in Histogram (James M Snell) #65806 * (SEMVER-MINOR) implement Histogram meanCI API (James M Snell) #65606 * (SEMVER-MINOR) add CBOR export/import for histogram exchange (James M Snell) #65434 sqlite: * (SEMVER-MINOR) add StatementSync.prototype.close() (Guilherme Araújo) #64232 * (SEMVER-MINOR) add StatementSync.prototype[Symbol.dispose]() (Guilherme Araújo) #64232 src,lib: * (SEMVER-MINOR) add util.markPromiseAsHandled (James M Snell) #65805 test: * (SEMVER-MINOR) expand histogram test coverage (James M Snell) #65825 util: * (SEMVER-MINOR) implement util.throttle (James M Snell) #65899 * (SEMVER-MINOR) implement debounce (James M Snell) #65899 PR-URL: #66667
1 parent b8db004 commit a5d0eb9

14 files changed

Lines changed: 426 additions & 57 deletions

‎CHANGELOG.md‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ release.
4040
</tr>
4141
<tr>
4242
<td valign="top">
43-
<b><a href="doc/changelogs/CHANGELOG_V24.md#24.21.0">24.21.0</a></b><br/>
43+
<b><a href="doc/changelogs/CHANGELOG_V24.md#24.22.0">24.22.0</a></b><br/>
44+
<a href="doc/changelogs/CHANGELOG_V24.md#24.21.0">24.21.0</a><br/>
4445
<a href="doc/changelogs/CHANGELOG_V24.md#24.20.0">24.20.0</a><br/>
4546
<a href="doc/changelogs/CHANGELOG_V24.md#24.19.0">24.19.0</a><br/>
4647
<a href="doc/changelogs/CHANGELOG_V24.md#24.18.1">24.18.1</a><br/>

‎doc/api/child_process.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1893,7 +1893,7 @@ subprocess.ref();
18931893
<!-- YAML
18941894
added: v0.5.9
18951895
changes:
1896-
- version: REPLACEME
1896+
- version: v24.22.0
18971897
pr-url: https://github.com/nodejs/node/pull/64725
18981898
description: '`net.BoundSocket` instances can now be sent.'
18991899
- version: v5.8.0

‎doc/api/cli.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -797,7 +797,7 @@ Node.js must be built against a FIPS-capable OpenSSL.
797797
### `--enable-fips-indicator-events`
798798

799799
<!-- YAML
800-
added: REPLACEME
800+
added: v24.22.0
801801
-->
802802

803803
Publish OpenSSL FIPS indicator results to the
@@ -1404,7 +1404,7 @@ Disable loading native addons that are not [context-aware][].
14041404
<!-- YAML
14051405
added: v6.0.0
14061406
changes:
1407-
- version: REPLACEME
1407+
- version: v24.22.0
14081408
pr-url: https://github.com/nodejs/node/pull/65645
14091409
description: Added the optional `provider` and `strict` modes.
14101410
-->
@@ -2493,7 +2493,7 @@ forked processes, or clustered processes.
24932493
<!-- YAML
24942494
added: v22.0.0
24952495
changes:
2496-
- version: REPLACEME
2496+
- version: v24.22.0
24972497
pr-url: https://github.com/nodejs/node/pull/64606
24982498
description: Passing `--run` without a command lists the available scripts.
24992499
- version: v22.3.0

‎doc/api/crypto.md‎

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2531,7 +2531,7 @@ or `'private'` for private (asymmetric) keys.
25312531
## Class: `Mac`
25322532

25332533
<!-- YAML
2534-
added: REPLACEME
2534+
added: v24.22.0
25352535
-->
25362536

25372537
* Extends: {stream.Transform}
@@ -2576,7 +2576,7 @@ console.log(mac.final('hex'));
25762576
### `mac.final([outputEncoding])`
25772577

25782578
<!-- YAML
2579-
added: REPLACEME
2579+
added: v24.22.0
25802580
-->
25812581

25822582
* `outputEncoding` {string} The [encoding][] of the return value.
@@ -2596,7 +2596,7 @@ including when finalization fails. Later calls to `mac.update()` or
25962596
### `mac.update(data[, inputEncoding])`
25972597

25982598
<!-- YAML
2599-
added: REPLACEME
2599+
added: v24.22.0
26002600
-->
26012601

26022602
* `data` {string|Buffer|TypedArray|DataView}
@@ -3643,13 +3643,13 @@ operations. The specific constants currently defined are described in
36433643
<!-- YAML
36443644
added: v0.1.94
36453645
changes:
3646-
- version: REPLACEME
3646+
- version: v24.22.0
36473647
pr-url: https://github.com/nodejs/node/pull/65484
36483648
description: Additional ciphers available through OpenSSL providers (e.g.
36493649
SM4-GCM, SM4-CCM, SM4-XTS, CBC-CTS, and AES key-wrap variants)
36503650
are now supported. The `ctsMode` and `xtsStandard` options
36513651
were added.
3652-
- version: REPLACEME
3652+
- version: v24.22.0
36533653
pr-url: https://github.com/nodejs/node/pull/63411
36543654
description: Ciphers in SIV and GCM-SIV modes are now supported.
36553655
- version:
@@ -3749,13 +3749,13 @@ and can be transmitted with the ciphertext.
37493749
<!-- YAML
37503750
added: v0.1.94
37513751
changes:
3752-
- version: REPLACEME
3752+
- version: v24.22.0
37533753
pr-url: https://github.com/nodejs/node/pull/65484
37543754
description: Additional ciphers available through OpenSSL providers (e.g.
37553755
SM4-GCM, SM4-CCM, SM4-XTS, CBC-CTS, and AES key-wrap variants)
37563756
are now supported. The `ctsMode` and `xtsStandard` options
37573757
were added.
3758-
- version: REPLACEME
3758+
- version: v24.22.0
37593759
pr-url: https://github.com/nodejs/node/pull/63411
37603760
description: Ciphers in SIV and GCM-SIV modes are now supported.
37613761
- version:
@@ -3930,7 +3930,7 @@ and description of each available elliptic curve.
39303930
<!-- YAML
39313931
added: v0.1.92
39323932
changes:
3933-
- version: REPLACEME
3933+
- version: v24.22.0
39343934
pr-url: https://github.com/nodejs/node/pull/65484
39353935
description: Hash algorithms exposed by OpenSSL providers are now
39363936
supported. The `functionName` and `customization` options
@@ -4123,7 +4123,7 @@ input.on('readable', () => {
41234123
### `crypto.createMac(algorithm, key[, options])`
41244124

41254125
<!-- YAML
4126-
added: REPLACEME
4126+
added: v24.22.0
41274127
-->
41284128

41294129
> Stability: 1.2 - Release candidate
@@ -5144,7 +5144,7 @@ mode][].
51445144
<!-- YAML
51455145
added: v0.9.3
51465146
changes:
5147-
- version: REPLACEME
5147+
- version: v24.22.0
51485148
pr-url: https://github.com/nodejs/node/pull/65484
51495149
description: Names and aliases exposed by loaded OpenSSL providers that
51505150
match the default property query are now included.
@@ -5183,7 +5183,7 @@ console.log(getHashes()); // ['DSA', 'DSA-SHA', 'DSA-SHA1', ...]
51835183
### `crypto.getMacs()`
51845184

51855185
<!-- YAML
5186-
added: REPLACEME
5186+
added: v24.22.0
51875187
-->
51885188

51895189
> Stability: 1.2 - Release candidate
@@ -5234,7 +5234,7 @@ added:
52345234
- v21.7.0
52355235
- v20.12.0
52365236
changes:
5237-
- version: REPLACEME
5237+
- version: v24.22.0
52385238
pr-url: https://github.com/nodejs/node/pull/65484
52395239
description: Hash algorithms exposed by OpenSSL providers are now
52405240
supported. The `functionName` and `customization` options
@@ -5453,7 +5453,7 @@ console.log(Buffer.from(derivedKey).toString('hex')); // '24156e2...5391653'
54535453
### `crypto.parsePKCS12(bundle[, options])`
54545454

54555455
<!-- YAML
5456-
added: REPLACEME
5456+
added: v24.22.0
54575457
-->
54585458

54595459
* `bundle` {ArrayBuffer|Buffer|TypedArray|DataView} A DER-encoded PKCS#12
@@ -5651,7 +5651,7 @@ suitable for HMAC or PBKDF2.
56515651
<!-- YAML
56525652
added: v0.11.14
56535653
changes:
5654-
- version: REPLACEME
5654+
- version: v24.22.0
56555655
pr-url: https://github.com/nodejs/node/pull/65073
56565656
description: The `mgf1Hash` option was added.
56575657
- version:
@@ -5803,7 +5803,7 @@ be passed instead of a public key.
58035803
<!-- YAML
58045804
added: v0.11.14
58055805
changes:
5806-
- version: REPLACEME
5806+
- version: v24.22.0
58075807
pr-url: https://github.com/nodejs/node/pull/65073
58085808
description: The `mgf1Hash` option was added.
58095809
- version: v15.0.0

‎doc/api/deprecations.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4509,7 +4509,7 @@ will throw an error in a future version.
45094509
45104510
<!-- YAML
45114511
changes:
4512-
- version: REPLACEME
4512+
- version: v24.22.0
45134513
pr-url: https://github.com/nodejs/node/pull/64794
45144514
description: Documentation-only.
45154515
-->
@@ -4526,7 +4526,7 @@ calling or overriding `_listen2`.
45264526
45274527
<!-- YAML
45284528
changes:
4529-
- version: REPLACEME
4529+
- version: v24.22.0
45304530
pr-url: https://github.com/nodejs/node/pull/64342
45314531
description: Documentation-only deprecation.
45324532
-->

‎doc/api/diagnostics_channel.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1152,7 +1152,7 @@ passed to `console.error()`.
11521152
#### Crypto
11531153

11541154
<!-- YAML
1155-
added: REPLACEME
1155+
added: v24.22.0
11561156
-->
11571157

11581158
> Stability: 1 - Experimental
@@ -1570,7 +1570,7 @@ Emitted when a new thread is created.
15701570
#### SQLite
15711571

15721572
<!-- YAML
1573-
added: REPLACEME
1573+
added: v24.22.0
15741574
-->
15751575

15761576
> Stability: 1 - Experimental

‎doc/api/errors.md‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1075,7 +1075,7 @@ The given crypto key object's type is invalid for the attempted operation.
10751075
### `ERR_CRYPTO_INVALID_MAC`
10761076

10771077
<!-- YAML
1078-
added: REPLACEME
1078+
added: v24.22.0
10791079
-->
10801080

10811081
An invalid MAC algorithm was specified.
@@ -1158,7 +1158,7 @@ OpenSSL with KEM support.
11581158
### `ERR_CRYPTO_MAC_FINALIZED`
11591159

11601160
<!-- YAML
1161-
added: REPLACEME
1161+
added: v24.22.0
11621162
-->
11631163

11641164
An operation was attempted on a `Mac` object after finalization was attempted
@@ -1169,7 +1169,7 @@ or an underlying MAC update failed.
11691169
### `ERR_CRYPTO_MAC_NOT_SUPPORTED`
11701170

11711171
<!-- YAML
1172-
added: REPLACEME
1172+
added: v24.22.0
11731173
-->
11741174

11751175
Node.js was built without support for the OpenSSL `EVP_MAC` API.
@@ -1179,7 +1179,7 @@ Node.js was built without support for the OpenSSL `EVP_MAC` API.
11791179
### `ERR_CRYPTO_MAC_UPDATE_FAILED`
11801180

11811181
<!-- YAML
1182-
added: REPLACEME
1182+
added: v24.22.0
11831183
-->
11841184

11851185
[`mac.update()`][] failed for an unspecified reason.

‎doc/api/perf_hooks.md‎

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1090,7 +1090,7 @@ before Node.js receives the first byte of the response from the server.
10901090
### `performanceResourceTiming.finalResponseHeadersStart`
10911091

10921092
<!-- YAML
1093-
added: REPLACEME
1093+
added: v24.22.0
10941094
-->
10951095

10961096
* Type: {number}
@@ -1102,7 +1102,7 @@ as opposed to an interim response.
11021102
### `performanceResourceTiming.firstInterimResponseStart`
11031103

11041104
<!-- YAML
1105-
added: REPLACEME
1105+
added: v24.22.0
11061106
-->
11071107

11081108
* Type: {number}
@@ -1118,7 +1118,7 @@ added:
11181118
- v18.2.0
11191119
- v16.17.0
11201120
changes:
1121-
- version: REPLACEME
1121+
- version: v24.22.0
11221122
pr-url: https://github.com/nodejs/node/pull/65017
11231123
description: This property now returns `firstInterimResponseStart`
11241124
when it is non-zero.
@@ -1213,7 +1213,7 @@ content-codings.
12131213
### `performanceResourceTiming.renderBlockingStatus`
12141214

12151215
<!-- YAML
1216-
added: REPLACEME
1216+
added: v24.22.0
12171217
-->
12181218

12191219
* Type: {string}
@@ -1223,7 +1223,7 @@ The render blocking status of the resource. It is either `'blocking'` or `'non-b
12231223
### `performanceResourceTiming.contentType`
12241224

12251225
<!-- YAML
1226-
added: REPLACEME
1226+
added: v24.22.0
12271227
-->
12281228

12291229
* Type: {string}
@@ -1234,7 +1234,7 @@ string if it cannot be determined.
12341234
### `performanceResourceTiming.contentEncoding`
12351235

12361236
<!-- YAML
1237-
added: REPLACEME
1237+
added: v24.22.0
12381238
-->
12391239

12401240
* Type: {string}
@@ -1717,7 +1717,7 @@ Returns a {RecordableHistogram}.
17171717
## `perf_hooks.createSlidingWindowHistogram(options)`
17181718

17191719
<!-- YAML
1720-
added: REPLACEME
1720+
added: v24.22.0
17211721
-->
17221722

17231723
* `options` {Object}
@@ -1772,7 +1772,7 @@ console.log(snapshot.percentile(99));
17721772
## `perf_hooks.importHistogram(data)`
17731773

17741774
<!-- YAML
1775-
added: REPLACEME
1775+
added: v24.22.0
17761776
-->
17771777

17781778
* `data` {Uint8Array} A CBOR-encoded histogram previously produced by
@@ -2126,7 +2126,7 @@ loop delay threshold.
21262126
### `histogram.export()`
21272127

21282128
<!-- YAML
2129-
added: REPLACEME
2129+
added: v24.22.0
21302130
-->
21312131

21322132
* Returns: {Uint8Array}
@@ -2334,7 +2334,7 @@ The mean of the recorded event loop delays.
23342334
### `histogram.meanCI([options])`
23352335

23362336
<!-- YAML
2337-
added: REPLACEME
2337+
added: v24.22.0
23382338
-->
23392339

23402340
* `options` {Object}
@@ -2485,7 +2485,7 @@ efficient pass over the histogram data. More efficient than calling
24852485
### `histogram.qrde([options])`
24862486

24872487
<!-- YAML
2488-
added: REPLACEME
2488+
added: v24.22.0
24892489
-->
24902490

24912491
* `options` {Object}
@@ -2735,7 +2735,7 @@ are clamped to zero.
27352735
## Class: `SlidingWindowHistogram`
27362736

27372737
<!-- YAML
2738-
added: REPLACEME
2738+
added: v24.22.0
27392739
-->
27402740

27412741
Records values into a lazily rotated ring of histogram chunks. Instances are
@@ -2749,7 +2749,7 @@ call `snapshot()` to materialize the current window as a {Histogram}.
27492749
### `slidingWindowHistogram.record(val)`
27502750

27512751
<!-- YAML
2752-
added: REPLACEME
2752+
added: v24.22.0
27532753
-->
27542754

27552755
* `val` {number|bigint} The amount to record.
@@ -2761,7 +2761,7 @@ exceed the configured `highest` value.
27612761
### `slidingWindowHistogram.reset()`
27622762

27632763
<!-- YAML
2764-
added: REPLACEME
2764+
added: v24.22.0
27652765
-->
27662766

27672767
Invalidates all chunks in the current window. Allocated chunks are reset
@@ -2770,7 +2770,7 @@ lazily when reused.
27702770
### `slidingWindowHistogram.snapshot()`
27712771

27722772
<!-- YAML
2773-
added: REPLACEME
2773+
added: v24.22.0
27742774
-->
27752775

27762776
* Returns: {Histogram}

0 commit comments

Comments
 (0)