@@ -131,7 +131,8 @@ the character "E" appended to the traditional abbreviations):
131131
132132Perfect forward secrecy using ECDHE is enabled by default. The ` ecdhCurve `
133133option can be used when creating a TLS server to customize the list of supported
134- ECDH curves to use. See [ ` tls.createServer() ` ] [ ] for more info.
134+ ECDH curves for TLSv1.2 and below, and the list of supported TLS groups for
135+ TLSv1.3. See [ ` tls.createServer() ` ] [ ] for more info.
135136
136137DHE is disabled by default but can be enabled alongside ECDHE by setting the
137138` dhparam ` option to ` 'auto' ` . Custom DHE parameters are also supported but
@@ -1196,12 +1197,19 @@ added: v5.0.0
11961197
11971198* Returns: {Object}
11981199
1199- Returns an object representing the type, name, and size of parameter of
1200- an ephemeral key exchange in [ perfect forward secrecy] [ ] on a client
1201- connection. It returns an empty object when the key exchange is not
1202- ephemeral. As this is only supported on a client socket; ` null ` is returned
1203- if called on a server socket. The supported types are ` 'DH' ` and ` 'ECDH' ` . The
1204- ` name ` property is available only when type is ` 'ECDH' ` .
1200+ Returns an object describing ephemeral key agreement in [ perfect forward
1201+ secrecy] [ ] on a client connection. It returns an empty object when the key
1202+ agreement is not ephemeral. As this is only supported on a client socket;
1203+ ` null ` is returned if called on a server socket. The supported types are ` 'DH' ` ,
1204+ ` 'ECDH' ` , and ` 'TLSGroup' ` . For ` 'DH' ` and ` 'ECDH' ` , the object describes peer
1205+ temporary key parameters. For ` 'TLSGroup' ` , the object identifies the negotiated
1206+ TLS Supported Group used for key agreement when a peer temporary key object is
1207+ not available.
1208+
1209+ The ` name ` property is available only when type is ` 'ECDH' ` or ` 'TLSGroup' ` . The
1210+ ` size ` property is not available when type is ` 'TLSGroup' ` . For ` 'TLSGroup' ` ,
1211+ ` name ` is the negotiated TLS Supported Group name. Standardized TLS group names
1212+ and code points are listed in the [ IANA TLS Supported Groups registry] [ ] .
12051213
12061214For example: ` { type: 'ECDH', name: 'prime256v1', size: 256 } ` .
12071215
@@ -2015,12 +2023,16 @@ changes:
20152023 required for non-ECDHE [ perfect forward secrecy] [ ] . If omitted or invalid,
20162024 the parameters are silently discarded and DHE ciphers will not be available.
20172025 [ ECDHE] [ ] -based [ perfect forward secrecy] [ ] will still be available.
2018- * ` ecdhCurve ` {string} A string describing a named curve or a colon separated
2019- list of curve NIDs or names, for example ` P-521:P-384:P-256 ` , to use for
2020- ECDH key agreement. Set to ` auto ` to select the
2021- curve automatically. Use [ ` crypto.getCurves() ` ] [ ] to obtain a list of
2022- available curve names. On recent releases, ` openssl ecparam -list_curves `
2023- will also display the name and description of each available elliptic curve.
2026+ * ` ecdhCurve ` {string} A string describing a named curve, TLS group, or
2027+ colon-separated list of named curves or TLS groups to use for key agreement,
2028+ for example ` P-521:P-384:P-256 ` , ` X25519 ` , or ` X25519MLKEM768 ` . The
2029+ historical name of this option refers to ECDH key agreement in TLSv1.2 and
2030+ below. In TLSv1.3, this option configures the TLS Supported Groups and
2031+ key share groups offered or accepted by the TLS stack. Set to ` auto ` to
2032+ select the group automatically. Use [ ` crypto.getCurves() ` ] [ ] to obtain a
2033+ list of available elliptic curve names. For TLS group names, use
2034+ ` openssl list -tls-groups ` or consult the [ IANA TLS Supported Groups
2035+ registry] [ ] .
20242036 ** Default:** [ ` tls.DEFAULT_ECDH_CURVE ` ] [ ] .
20252037 * ` honorCipherOrder ` {boolean} Attempt to use the server's cipher suite
20262038 preferences instead of the client's. When ` true ` , causes
@@ -2435,9 +2447,9 @@ changes:
24352447 description: Default value changed to `'auto'`.
24362448-->
24372449
2438- The default curve name to use for ECDH key agreement in a tls server. The
2439- default value is ` 'auto' ` . See [ ` tls.createSecureContext() ` ] [ ] for further
2440- information.
2450+ The default named curve or TLS group list to use for key agreement in a TLS
2451+ server. The default value is ` 'auto' ` . See [ ` tls.createSecureContext() ` ] [ ] for
2452+ further information.
24412453
24422454## ` tls.DEFAULT_MAX_VERSION `
24432455
@@ -2485,6 +2497,7 @@ added: v0.11.3
24852497[ Chrome's 'modern cryptography' setting ] : https://www.chromium.org/Home/chromium-security/education/tls#TOC-Cipher-Suites
24862498[ DHE ] : https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange
24872499[ ECDHE ] : https://en.wikipedia.org/wiki/Elliptic_curve_Diffie%E2%80%93Hellman
2500+ [ IANA TLS Supported Groups registry ] : https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-8
24882501[ Modifying the default TLS cipher suite ] : #modifying-the-default-tls-cipher-suite
24892502[ Mozilla's publicly trusted list of CAs ] : https://hg.mozilla.org/mozilla-central/raw-file/tip/security/nss/lib/ckfw/builtins/certdata.txt
24902503[ OCSP request ] : https://en.wikipedia.org/wiki/OCSP_stapling
0 commit comments