RFC Errata
RFC 8446, "The Transport Layer Security (TLS) Protocol Version 1.3", August 2018
Source of RFC: tls (sec)
Errata ID: 8423
Status: Reported
Type: Technical
Publication Format(s) : TEXT
Reported By: Nizar Nadif
Date Reported: 2025-05-19
Section 4.1.2 says:
struct { ProtocolVersion legacy_version = 0x0303; /* TLS v1.2 */ Random random; opaque legacy_session_id<0..32>; CipherSuite cipher_suites<2..2^16-2>; opaque legacy_compression_methods<1..2^8-1>; Extension extensions<8..2^16-1>; } ClientHello;
It should say:
struct { ProtocolVersion legacy_version = 0x0303; /* TLS v1.2 */ Random random; opaque legacy_session_id<0..32>; CipherSuite cipher_suites<2..2^16-2>; opaque legacy_compression_methods<1..2^8-1>; Extension extensions<7..2^16-1>; } ClientHello;
Notes:
The minimum size of the ClientHello’s extensions is 7 as the bytes of the SupportedVersions field are at least:
- 2 bytes for the type of extension;
- 2 bytes for the length of the extension;
- 1 byte for the length of the following versions;
- 2 bytes per version (and there is at least 1 version).
The typo is also present in the section B.3.1.