Skip to content

Commit 223fd75

Browse files
committed
Require both version negotiation AND 1-RTT keys
1 parent 7c41ea0 commit 223fd75

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

draft-ietf-quic-transport.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -647,10 +647,14 @@ continue to have the VERSION flag set and MUST include the new negotiated
647647
protocol version.
648648

649649
The client MUST set the VERSION flag and include its selected version on all
650-
packets until it starts protecting packets with 1-RTT keys. Only unprotected
651-
packets and 0-RTT protected packets can include a version. A client MUST NOT
652-
change the version it uses unless it is in response to a version negotiation
653-
packet from the server.
650+
packets until it has 1-RTT keys and it has received a packet from the server
651+
that does not have the VERSION flag set. With TLS, this means that unprotected
652+
packets and 0-RTT protected packets all include a version field.
653+
654+
A client MUST NOT change the version it uses unless it is in response to a
655+
version negotiation packet from the server. Once a client receives a packet
656+
from the server with the VERSION flag unset, it MUST ignore the flag in
657+
subsequently received packets.
654658

655659
Version negotiation uses unprotected data. The result of the negotiation MUST
656660
be revalidated once the cryptographic handshake has completed (see

0 commit comments

Comments
 (0)