@@ -123,7 +123,11 @@ Node.js EOL dates:
123123
124124## Node.js version 15.x (est. Oct 2020) (EOL Jun 2021)
125125
126- * OpenSSL version: 1.1.1
126+ * quictls/OpenSSL version: 1.1.1+quic
127+ Node.js currently uses a temporary OpenSSL fork, which closely tracks the main
128+ openssl/openssl releases with the addition of APIs to support the QUIC protocol.
129+ Details on the fork, as well as the latest sources, can be found at
130+ < https://github.com/quictls/openssl > .
127131* Allowed shared OpenSSL version: 1.1.1
128132* Default minimum TLS version is TLSv1.2, default maximum is TLSv1.3. TLSv1
129133 and TLSv1.1 are * not* supported by default, only by explicit run-time
@@ -137,8 +141,13 @@ of 15.x (which is only about 8 months), that experimental support for OpenSSL
137141
138142## Node.js version 16.x (est Apr 2021) (EOL Apr 2024)
139143
140- * OpenSSL version: 3.x (because of OpenSSL EOL)
141- * Allowed shared OpenSSL version: 1.1.1 (proposed...)
144+ * quictls/OpenSSL version: openssl-3.0.0+quic
145+ Node.js currently uses a temporary OpenSSL fork, which closely tracks the main
146+ openssl/openssl releases with the addition of APIs to support the QUIC protocol.
147+ This will be used until OpenSSL releases support for the QUIC protocol. Details
148+ on the fork, as well as the latest sources, can be found at
149+ < https://github.com/quictls/openssl > .
150+ * Allowed shared OpenSSL version: 3.0.0, 3.0.0+quic, 1.1.1, 1.1.1+quic
142151* Default minimum TLS version is TLSv1.2, default maximum is TLSv1.3. TLSv1
143152 and TLSv1.1 are * not* supported by default, only by explicit run-time
144153 configuration.
@@ -154,6 +163,11 @@ a `semver-minor` (ABI, API, and behavioural compatible) update to 16.x.
154163For minimal disruption, it would probably be helpful if Node.js supported
155164building against OpenSSL 1.1.1 out-of-tree, even if OpenSSL 3.x was in-tree.
156165
166+ The plan described above is to:
167+
168+ * Once OpenSSL has been updated with support for the QUIC protocol replace the
169+ temporary quictls/openssl depencency with it.
170+
157171Challenges are:
158172
1591731 . OpenSSL 3.x moved many algorithms into a legacy library, that is only
@@ -165,9 +179,6 @@ Challenges are:
165179 APIs, but the alternatives to those deprecated APIs do not exist in OpenSSL
166180 1.1.1. So, Node.js 16.x either needs to ship calling deprecated APIs, or
167181 break compatibility with OpenSSL 1.1.1 (so it will _ only build with 3.x_ ).
168- 4 . Behavioural differences in OpenSSL 3.x currently fail many tests in the
169- Node.js master test suite (effort to fix this is unknown, impact of fixing
170- in terms of compatibility is unknown).
171182
172183Tracking issue: < https://github.com/nodejs/node/issues/29817 >
173184
0 commit comments