In preparation of the new HandshakeLog interface, we should finish porting the types of message contents to the QD-generated ones.
[x] Split the extension into separate types for CH, SH, EE, CR, C, NST. Remove ext_msg index.
[x] Remove sum types from the leaf types (psk, protocol_version, keyShare, etc)
[x] Upgrade psk to PreSharedKeyClientExtension/PreSharedKeyServerExtension
[x] Upgrade protocol_version to SupportedVersions/ProtocolVersion
[x] Upgrade list serverName to ServerNameList/OneServerName
[x] Upgrade keyShare to KeyShareClientHello/KeyShareEntry
[x] Upgrade earlyDataIndication
[x] Upgrade list point_format to ECPointFormatList
[x] Upgrade list CommonDH.namedGroup to NamedGroupList
[x] Upgrade signatureSchemeList to SignatureSchemeList
Once this is done, we can update the internal extension parsers in HandshakeMessage to the generated ones. The next step is to upgrade HandshakeMessage itself:
[ ] Split handshakeType into handshakeType, handshakeType12, handshakeType13 and hs_msg into handshakeMessage, handshakeMessage12, handshakeMessage13
[ ] Split the Handshake.recv_fragment state machine more cleanly to operate on separate message types
[ ] Upgrade ClientHello, ServerHello, and HelloRetryRequest
In preparation of the new HandshakeLog interface, we should finish porting the types of message contents to the QD-generated ones.
ext_msg
index.psk
toPreSharedKeyClientExtension
/PreSharedKeyServerExtension
protocol_version
to SupportedVersions/ProtocolVersion
list serverName
toServerNameList
/OneServerName
keyShare
toKeyShareClientHello
/KeyShareEntry
earlyDataIndication
list point_format
toECPointFormatList
list CommonDH.namedGroup
toNamedGroupList
signatureSchemeList
toSignatureSchemeList
Once this is done, we can update the internal extension parsers in
HandshakeMessage
to the generated ones. The next step is to upgrade HandshakeMessage itself:handshakeType
intohandshakeType
,handshakeType12
,handshakeType13
andhs_msg
intohandshakeMessage
,handshakeMessage12
,handshakeMessage13
Handshake.recv_fragment
state machine more cleanly to operate on separate message typesClientHello
,ServerHello
, andHelloRetryRequest