本文へ移動

Node.js 24.22.0 LTS で parsePKCS12 と sqlite の close() が使える

Node.js 24 LTS を使うチーム向けに、24.22.0 の暗号 API と sqlite の明示的な破棄処理を整理する。新 API の追加と fs.cpSync など既存処理の変更を分け、更新時の確認箇所を示す。

2026年10月14日に出た Node.js 24.22.0(‘Krypton’、LTS)で、crypto.parsePKCS12() と sqlite の StatementSync.prototype.close() が 24 系に入った。リリースノートの Notable Changes では、どちらも SEMVER-MINOR として載っている。24 LTS に留まっているチームでも、24.22.0 へ上げればこれらの API を利用できる。

ただし、リリースノートに書かれているのは機能名と PR 番号までで、引数や戻り値の形は載っていない。コードを書く前に 24.22.0 の API ドキュメントで確かめる必要がある。以下、Notable Changes の SEMVER-MINOR 項目を用途別に並べ、そのあとで上げる前に見ておきたい既存 API の挙動変更を挙げる。

分野追加された項目PR
cryptocrypto.parsePKCS12()#65627
crypto汎用 MAC API#65553
cryptoOpenSSL provider からの cipher・hash の検出#65484
cryptoCipher/Decipher API で SIV と GCM-SIV モードを有効化#63411
sqliteStatementSync.prototype.close() と [Symbol.dispose]()#64232
perf_hooksSlidingWindowHistogram、qrde 分析、meanCI、CBOR での export/import#65825 ほか
netnet.BoundSocket をスレッドと子プロセスへ送る#64725
utilutil.throttle、debounce、util.markPromiseAsHandled#65899、#65805

出典:Node.js 24.22.0 (LTS) リリースノート(Notable Changes)

証明書と暗号まわりで増えたもの

PKCS#12 ファイルを読む処理は、crypto.parsePKCS12() という名前で標準 API に入った。これまで外部ライブラリで分解していた場合、置き換えの候補になる。どこまで(鍵、証明書チェーン、パスワード付きファイル)を扱えるかはリリースノートからは分からない。

汎用 MAC API も追加された。対応アルゴリズムの一覧はノートにないため、既存の暗号処理を置き換える判断には API の仕様確認が必要になる。暗号モードでは、Cipher/Decipher で SIV と GCM-SIV が使えるようになった。OpenSSL provider が持つ cipher と hash を検出する変更も入っているので、provider を差し替えている環境では、使える名前の一覧が変わる可能性がある。どう変わるかはノートに書かれていない。

SEMVER-MINOR の印は付いていないが、crypto には他にも修正が多い。Hmac.digest() が未初期化メモリを返さないようにする修正(#65112)、--force-fips の strict mode と FIPS indicator の diagnostics channel(#65645)、Web Cryptography への Hybrid KEM 追加(#65759)などだ。FIPS モードで非 FIPS の WebCrypto 経路を無効にする変更(#65172)もあり、FIPS 環境で WebCrypto を使っているなら、上げた後に同じ処理が通るかを確かめておきたい。

sqlite の statement を自分で閉じる

node:sqlite の StatementSync に close() と [Symbol.dispose]() が付いた(#64232)。prepared statement の寿命をコード側で明示的に終わらせられる。Symbol.dispose を実装したことで、破棄のプロトコルに乗る形にもなった。24 系の実行環境で using 構文がそのまま使えるかは、このノートからは判断できない。

同じリリースには、sqlite のコールバック内で close() を呼んだときのエラーを文書化するコミット(#65090)もある。ただし、このコミット名だけでは今回追加された statement の close() と同じ対象かは判断できない。両者を同一の制限として扱わず、利用するクラスの API 仕様を確認したい。

計測、ネットワーク、util

perf_hooks の Histogram は 4 つの拡張を受けた。スライディングウィンドウ版の SlidingWindowHistogram、qrde 分析、平均の信頼区間を返す meanCI API、そして Histogram を別プロセスとやり取りするための CBOR export/import だ。ベンチマーク結果を集計しているチームには関係が深い。

node:net では net.BoundSocket をスレッドと子プロセスへ送れるようになった。逆に、Server.prototype._listen2 は非推奨になった。これは doc: のコミットとして入っており、実行時に警告が出るかどうかはノートから読み取れない。内部 API に触れているライブラリを使っているなら、依存先が _listen2 を呼んでいないかを grep しておくとよい。

util.throttle、debounce、util.markPromiseAsHandled も SEMVER-MINOR 項目に並ぶ。利用する場合は、このリリースの API 仕様を読んで既存処理の置き換え可否を判断したい。

上げる前に確認したい既存 API の変更

追加とは別に、既存 API の挙動が変わるコミットもある。

  • fs.cpSync は errorOnExist 指定時、既存ディレクトリで例外を投げる(#64124)
  • fs.cpSync が作るディレクトリは、コピー元ディレクトリの mode を受け継ぐ(#65488)
  • Windows の fs.rmSync が読み取り専用ファイルも削除できるようになった(#64453)

ほかに同梱 npm が 11.19.1 に上がり、自前ビルドでは古い configure フラグが削除された(#65456)。CI でソースから Node.js をビルドしているなら、フラグの指定を見直す。

更新時は、新しく呼び出す API と既存コードへの影響を分けて確認したい。PKCS#12 の読み込みや statement の破棄が目的なら追加 API の仕様を読み、既存のファイルコピーや FIPS 経路を使っているなら、その処理の回帰確認を先に行う。リリースノートの項目名だけから、対応アルゴリズムや安全な呼び出し順序まで推測して実装しない。

出典 種別について