@@ -98,28 +98,27 @@ Not yet supported
9898
9999## TLS 1.3
100100
101- OTP-22 introduces support for TLS 1.3. The current implementation supports a
102- selective set of cryptographic algorithms:
103-
104- - Key Exchange: ECDHE groups supported by default
105- - Groups: all standard groups supported for the Diffie-Hellman key exchange
106- - Groups: Support brainpool groups from RFC 8734
107- - Ciphers: all mandatory cipher suites are supported
108- - Signature Algorithms: All algorithms form RFC 8446
109- - Certificates: RSA, ECDSA and EDDSA keys
110-
111- Other notable features:
112-
113- - PSK and session resumption is supported (stateful and stateless tickets)
114- - Anti-replay protection using Bloom-filters with stateless tickets
115- - Early data and 0-RTT is supported
116- - Key and Initialization Vector Update is supported
101+ TLS 1.3 support was first introduced in OTP 22. The "Since" column in the
102+ table below indicates in which OTP release a feature was first implemented.
103+ We always recommend running the latest patch level of any given release, as
104+ compliance bugs may have been fixed in subsequent patch releases.
105+
106+ The following features from [ RFC 8446] ( https://tools.ietf.org/html/rfc8446 )
107+ (or mentioned by it) are ** not yet implemented** :
108+
109+ - PSK-only key exchange (without (EC)DHE)
110+ - Post-Handshake Client Authentication (Section 4.6.2)
111+ - OID Filters extension (Section 4.2.5)
112+ - Record padding (sending, Section 5.4)
113+ - Server-side OCSP stapling (status_request in Certificate, Section 4.4.2)
114+ - Supported groups in Encrypted Extensions (Section 4.3.1)
115+ - Heartbeat extension (RFC 6520)
116+ - Signed Certificate Timestamp extension (RFC 6962)
117+ - Raw Public Keys / client_certificate_type and server_certificate_type (RFC 7250)
118+ - Padding extension (RFC 7685)
117119
118120For more detailed information see the
119- [ Standards Compliance] ( standards_compliance.md#soc_table ) below.
120-
121- The following table describes the current state of standards compliance for TLS
122- 1.3.
121+ [ Standards Compliance] ( standards_compliance.md#soc_table ) table below.
123122
124123(_ C_ = Compliant, _ NC_ = Non-Compliant, _ PC_ = Partially-Compliant, _ NA_ = Not
125124Applicable)
@@ -430,8 +429,64 @@ Applicable)
430429| [ C.5. Unauthenticated Operation] ( https://tools.ietf.org/html/rfc8446#section-C.5 ) | | C | 22 |
431430| [ D.1. Negotiating with an Older Server] ( https://tools.ietf.org/html/rfc8446#section-D.1 ) | | C | 22\. 2 |
432431| [ D.2. Negotiating with an Older Client] ( https://tools.ietf.org/html/rfc8446#section-D.2 ) | | C | 22 |
433- | [ D.3. 0-RTT Backward Compatibility] ( https://tools.ietf.org/html/rfc8446#section-D.3 ) | | NC | |
432+ | [ D.3. 0-RTT Backward Compatibility] ( https://tools.ietf.org/html/rfc8446#section-D.3 ) | | NA | |
434433| [ D.4. Middlebox Compatibility Mode] ( https://tools.ietf.org/html/rfc8446#section-D.4 ) | | C | 23 |
435434| [ D.5. Security Restrictions Related to Backward Compatibility] ( https://tools.ietf.org/html/rfc8446#section-D.5 ) | | C | 22 |
436435
437436_ Table: Standards Compliance_
437+
438+ ## Post-Quantum Cryptography (PQC)
439+
440+ Post-quantum cryptography support was first introduced in OTP 28. PQC
441+ algorithms are only available with TLS 1.3.
442+
443+ ### Key Exchange (ML-KEM)
444+
445+ Hybrid key exchange groups combining ML-KEM (FIPS 203) with classical
446+ ECDHE, as specified in [ RFC 10024] ( https://www.rfc-editor.org/rfc/rfc10024.txt ) :
447+
448+ | Group | Status | Since |
449+ | -------| --------| -------|
450+ | x25519mlkem768 | Default | 28.3 (default since 29.0) |
451+ | secp256r1mlkem768 | Supported | 28.3 |
452+ | secp384r1mlkem1024 | Supported | 28.3 |
453+
454+ Plain ML-KEM groups (without classical hybrid):
455+
456+ | Group | Status | Since |
457+ | -------| --------| -------|
458+ | mlkem768 | Supported | 28.0 |
459+ | mlkem1024 | Supported | 28.0 |
460+ | mlkem512 | Supported | 28.0 |
461+
462+ ### Signature Algorithms
463+
464+ ML-DSA (FIPS 204) as specified in
465+ [ draft-ietf-tls-mldsa] ( https://www.ietf.org/archive/id/draft-ietf-tls-mldsa-01.html ) :
466+
467+ | Algorithm | Status | Since |
468+ | -----------| --------| -------|
469+ | mldsa44 | Supported | 28.0 |
470+ | mldsa65 | Supported | 28.0 |
471+ | mldsa87 | Supported | 28.0 |
472+
473+ SLH-DSA (FIPS 205):
474+
475+ | Algorithm | Status | Since |
476+ | -----------| --------| -------|
477+ | slh_dsa_sha2_128s | Supported | 28.3 |
478+ | slh_dsa_sha2_128f | Supported | 28.3 |
479+ | slh_dsa_sha2_192s | Supported | 28.3 |
480+ | slh_dsa_sha2_192f | Supported | 28.3 |
481+ | slh_dsa_sha2_256s | Supported | 28.3 |
482+ | slh_dsa_sha2_256f | Supported | 28.3 |
483+ | slh_dsa_shake_128s | Supported | 28.3 |
484+ | slh_dsa_shake_128f | Supported | 28.3 |
485+ | slh_dsa_shake_192s | Supported | 28.3 |
486+ | slh_dsa_shake_192f | Supported | 28.3 |
487+ | slh_dsa_shake_256s | Supported | 28.3 |
488+ | slh_dsa_shake_256f | Supported | 28.3 |
489+
490+ ### Not Yet Implemented
491+
492+ - Composite ML-DSA signatures (ML-DSA + RSA/ECDSA in a single certificate)
0 commit comments