Skip to content

Commit 28ea741

Browse files
committed
doc: doc-only deprecate OpenSSL engine based APIs
OpenSSL 3 deprecated support for custom engines with a recommendation to switch to its new provider model.
1 parent 58711c2 commit 28ea741

File tree

4 files changed

+42
-5
lines changed

4 files changed

+42
-5
lines changed

doc/api/crypto.md

+5
Original file line numberDiff line numberDiff line change
@@ -5271,12 +5271,17 @@ added: v15.6.0
52715271

52725272
<!-- YAML
52735273
added: v0.11.11
5274+
changes:
5275+
- version: REPLACEME
5276+
pr-url: https://github.com/nodejs/node/pull/53329
5277+
description: Custom engine support in OpenSSL 3 is deprecated.
52745278
-->
52755279

52765280
* `engine` {string}
52775281
* `flags` {crypto.constants} **Default:** `crypto.constants.ENGINE_METHOD_ALL`
52785282

52795283
Load and set the `engine` for some or all OpenSSL functions (selected by flags).
5284+
Support for custom engines in OpenSSL is deprecated from OpenSSL 3.
52805285

52815286
`engine` could be either an id or a path to the engine's shared library.
52825287

doc/api/deprecations.md

+19
Original file line numberDiff line numberDiff line change
@@ -3695,6 +3695,23 @@ For ciphers in GCM mode, the [`decipher.setAuthTag()`][] function accepts
36953695
authentication tags of any valid length (see [DEP0090](#DEP0090)). This behavior
36963696
is deprecated to better align with recommendations per [NIST SP 800-38D][].
36973697

3698+
### DEP0183: OpenSSL engine based APIs
3699+
3700+
<!-- YAML
3701+
changes:
3702+
- version: REPLACEME
3703+
pr-url: https://github.com/nodejs/node/pull/53329
3704+
description: Documentation-only deprecation.
3705+
-->
3706+
3707+
Type: Documentation-only
3708+
3709+
OpenSSL 3 has deprecated support for custom engines with a recommendation to
3710+
switch to its new provider model. The `clientCertEngine` option for
3711+
`https.request()`, [`tls.createSecureContext()`][], and [`tls.createServer()`][];
3712+
the `privateKeyEngine` and `privateKeyIdentifier` for [`tls.createSecureContext()`][];
3713+
and [`crypto.setEngine()`][] all depend on this functionality from OpenSSL.
3714+
36983715
[NIST SP 800-38D]: https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf
36993716
[RFC 6066]: https://tools.ietf.org/html/rfc6066#section-3
37003717
[RFC 8247 Section 2.4]: https://www.rfc-editor.org/rfc/rfc8247#section-2.4
@@ -3736,6 +3753,7 @@ is deprecated to better align with recommendations per [NIST SP 800-38D][].
37363753
[`crypto.pbkdf2()`]: crypto.md#cryptopbkdf2password-salt-iterations-keylen-digest-callback
37373754
[`crypto.randomBytes()`]: crypto.md#cryptorandombytessize-callback
37383755
[`crypto.scrypt()`]: crypto.md#cryptoscryptpassword-salt-keylen-options-callback
3756+
[`crypto.setEngine()`]: crypto.md#cryptosetengineengine-flags
37393757
[`decipher.final()`]: crypto.md#decipherfinaloutputencoding
37403758
[`decipher.setAuthTag()`]: crypto.md#deciphersetauthtagbuffer-encoding
37413759
[`diagnostics_channel.subscribe(name, onMessage)`]: diagnostics_channel.md#diagnostics_channelsubscribename-onmessage
@@ -3814,6 +3832,7 @@ is deprecated to better align with recommendations per [NIST SP 800-38D][].
38143832
[`tls.TLSSocket`]: tls.md#class-tlstlssocket
38153833
[`tls.checkServerIdentity()`]: tls.md#tlscheckserveridentityhostname-cert
38163834
[`tls.createSecureContext()`]: tls.md#tlscreatesecurecontextoptions
3835+
[`tls.createServer()`]: tls.md#tlscreateserveroptions-secureconnectionlistener
38173836
[`url.format()`]: url.md#urlformaturlobject
38183837
[`url.parse()`]: url.md#urlparseurlstring-parsequerystring-slashesdenotehost
38193838
[`url.resolve()`]: url.md#urlresolvefrom-to

doc/api/https.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -342,6 +342,10 @@ a `timeout` of 5 seconds.
342342
<!-- YAML
343343
added: v0.3.6
344344
changes:
345+
- version: REPLACEME
346+
pr-url: https://github.com/nodejs/node/pull/53329
347+
description: The `clientCertEngine` option depends on custom engine
348+
support in OpenSSL which is deprecated in OpenSSL 3.
345349
- version:
346350
- v16.7.0
347351
- v14.18.0
@@ -377,7 +381,7 @@ changes:
377381
Makes a request to a secure web server.
378382

379383
The following additional `options` from [`tls.connect()`][] are also accepted:
380-
`ca`, `cert`, `ciphers`, `clientCertEngine`, `crl`, `dhparam`, `ecdhCurve`,
384+
`ca`, `cert`, `ciphers`, `clientCertEngine` (deprecated), `crl`, `dhparam`, `ecdhCurve`,
381385
`honorCipherOrder`, `key`, `passphrase`, `pfx`, `rejectUnauthorized`,
382386
`secureOptions`, `secureProtocol`, `servername`, `sessionIdContext`,
383387
`highWaterMark`.

doc/api/tls.md

+13-4
Original file line numberDiff line numberDiff line change
@@ -1799,6 +1799,11 @@ argument.
17991799
<!-- YAML
18001800
added: v0.11.13
18011801
changes:
1802+
- version: REPLACEME
1803+
pr-url: https://github.com/nodejs/node/pull/53329
1804+
description: The `clientCertEngine`, `privateKeyEngine` and
1805+
`privateKeyIdentifier` options depend on custom engine
1806+
support in OpenSSL which is deprecated in OpenSSL 3.
18021807
- version:
18031808
- v19.8.0
18041809
- v18.16.0
@@ -1886,7 +1891,7 @@ changes:
18861891
ciphers can be obtained via [`tls.getCiphers()`][]. Cipher names must be
18871892
uppercased in order for OpenSSL to accept them.
18881893
* `clientCertEngine` {string} Name of an OpenSSL engine which can provide the
1889-
client certificate.
1894+
client certificate. **Deprecated.**
18901895
* `crl` {string|string\[]|Buffer|Buffer\[]} PEM formatted CRLs (Certificate
18911896
Revocation Lists).
18921897
* `dhparam` {string|Buffer} `'auto'` or custom Diffie-Hellman parameters,
@@ -1914,11 +1919,11 @@ changes:
19141919
decrypted with `object.passphrase` if provided, or `options.passphrase` if
19151920
it is not.
19161921
* `privateKeyEngine` {string} Name of an OpenSSL engine to get private key
1917-
from. Should be used together with `privateKeyIdentifier`.
1922+
from. Should be used together with `privateKeyIdentifier`. **Deprecated.**
19181923
* `privateKeyIdentifier` {string} Identifier of a private key managed by
19191924
an OpenSSL engine. Should be used together with `privateKeyEngine`.
19201925
Should not be set together with `key`, because both options define a
1921-
private key in different ways.
1926+
private key in different ways. **Deprecated.**
19221927
* `maxVersion` {string} Optionally set the maximum TLS version to allow. One
19231928
of `'TLSv1.3'`, `'TLSv1.2'`, `'TLSv1.1'`, or `'TLSv1'`. Cannot be specified
19241929
along with the `secureProtocol` option; use one or the other.
@@ -2055,6 +2060,10 @@ where `secureSocket` has the same API as `pair.cleartext`.
20552060
<!-- YAML
20562061
added: v0.3.2
20572062
changes:
2063+
- version: REPLACEME
2064+
pr-url: https://github.com/nodejs/node/pull/53329
2065+
description: The `clientCertEngine` option depends on custom engine
2066+
support in OpenSSL which is deprecated in OpenSSL 3.
20582067
- version:
20592068
- v20.4.0
20602069
- v18.19.0
@@ -2102,7 +2111,7 @@ changes:
21022111
protocols, an error will be thrown. This option cannot be used with the
21032112
`ALPNProtocols` option, and setting both options will throw an error.
21042113
* `clientCertEngine` {string} Name of an OpenSSL engine which can provide the
2105-
client certificate.
2114+
client certificate. **Deprecated.**
21062115
* `enableTrace` {boolean} If `true`, [`tls.TLSSocket.enableTrace()`][] will be
21072116
called on new connections. Tracing can be enabled after the secure
21082117
connection is established, but this option must be used to trace the secure

0 commit comments

Comments
 (0)