TLSPlaintext Record (pre-encryption)
struct {
ContentType type; // 1 byte: handshake(22), alert(21), appdata(23)
ProtocolVersion version; // 2 bytes: always 0x0303 (TLS 1.2) for compat
uint16 length; // 2 bytes: length of fragment
opaque fragment[length]; // the payload
} TLSPlaintext;
Note: the version field in the record header is always 0x0303 in TLS 1.3
for backward compatibility with middleboxes. Actual version is negotiated via
supported_versions extension.