Commit Graph

4083 Commits

Author SHA1 Message Date
Marten Seemann
a1840b3221 fix unmarshaling of transport parameters from session tickets 2020-01-02 15:12:32 +08:00
Marten Seemann
07d76c547f Merge pull request #2064 from lucas-clemente/zero-rtt
add basic support for 0-RTT
2020-01-01 18:13:58 +04:00
Marten Seemann
00a0d09e6a add a Changelog entry for 0-RTT support 2020-01-01 18:04:02 +04:00
Marten Seemann
052508e8c2 add a version to marshaled transport parameters in the session ticket 2020-01-01 18:04:02 +04:00
Marten Seemann
00150e1d94 add some integration tests for 0-RTT handshakes 2020-01-01 18:04:02 +04:00
Marten Seemann
ce7583f813 add DialEarly and DialAddrEarly to dial 0-RTT connections 2020-01-01 18:04:02 +04:00
Marten Seemann
951477af92 queue 0-RTT packets for retransmission after receiving a Retry 2020-01-01 18:04:02 +04:00
Marten Seemann
afbf5efd01 don't force 0-RTT packets to use 4 byte packet numbers 2020-01-01 18:04:02 +04:00
Marten Seemann
22abcfe6fb drop 0-RTT write keys when receiving the 1-RTT keys 2020-01-01 18:04:02 +04:00
Marten Seemann
40a993e31c check that the client doesn't switch back to 0-RTT after sending 1-RTT 2020-01-01 18:04:02 +04:00
Marten Seemann
c79dfe77b8 implement packing of 0-RTT packets 2020-01-01 18:04:02 +04:00
Marten Seemann
44aa12850e restore the server's transport parameters from the session ticket 2020-01-01 18:04:02 +04:00
Marten Seemann
1f8a47af02 implement a ClientSessionCache that can save application data 2020-01-01 18:04:02 +04:00
Marten Seemann
9b0a4a8813 move unmarshaling of the transport parameters to the crypto setup 2020-01-01 18:04:01 +04:00
Marten Seemann
fc37cdc5c5 implement unpacking of 0-RTT packets 2019-12-30 18:39:21 +04:00
Marten Seemann
c5f74595ca receive 0-RTT sealers and openers from qtls when using 0-RTT 2019-12-30 18:39:21 +04:00
Marten Seemann
a9f4195fd0 check that transport params didn't change when accepting 2019-12-30 18:39:21 +04:00
Marten Seemann
ed0f426943 implement marshalling of transport parameters for the session ticket
When using 0-RTT, the client will reuse the transport parameters from
the last session. The server therefore needs to make sure that the
transport parameters haven't been changed in the mean time. To do so, it
encodes the transport parameters into the session ticket.
2019-12-30 18:39:21 +04:00
Marten Seemann
0b65a0c75e don't drop Handshake keys when receiving an ACK for a 0-RTT packet 2019-12-30 18:39:21 +04:00
Marten Seemann
d6b50cf15a use the same packet number space for received 0-RTT and 1-RTT packets 2019-12-30 18:39:21 +04:00
Marten Seemann
b25b2f6921 use the same packet number space for sent 0-RTT and 1-RTT packets 2019-12-30 18:39:21 +04:00
Marten Seemann
b0c08b1bd0 implement rules for frame types in 0-RTT packets 2019-12-30 18:39:21 +04:00
Marten Seemann
b1fc984306 add a 0-RTT encryption level 2019-12-30 18:39:21 +04:00
Marten Seemann
aecaf9dd50 update the Changelog 2019-12-30 18:39:12 +04:00
Marten Seemann
b9c3a292dc Merge pull request #2270 from lucas-clemente/improve-handshake-drop-test
improve the integration tests that drops handshake packets
2019-12-19 22:20:01 +04:00
Marten Seemann
ba7434ce65 improve the integration tests that drops handshake packets 2019-12-18 19:18:44 +04:00
Marten Seemann
5acdc55c61 Merge pull request #2252 from lucas-clemente/enforce-cid-limit
enfore the active_connection_id_limit
2019-12-18 10:12:14 +04:00
Marten Seemann
355156ac4e Merge pull request #2225 from lucas-clemente/handshake-done
implement the HANDSHAKE_DONE mechanism
2019-12-18 10:07:43 +04:00
Marten Seemann
2828fbc1af Merge pull request #2265 from lucas-clemente/max-idle-timeout
use the minimum of the peers' max_idle_timeout for the idle timeout
2019-12-18 10:05:33 +04:00
Marten Seemann
15661acca6 Merge pull request #2268 from Zeymo/master
fix leftover use of Header.GetLength when unpacking packets
2019-12-17 08:30:38 +04:00
Zeymo
f711dfab2b fix leftover use of Header.GetLength when unpacking packets 2019-12-17 12:22:31 +08:00
Marten Seemann
bd22b0b630 Merge pull request #2261 from lucas-clemente/header-parsing-fixes
use the parsed header length when unpacking packets
2019-12-16 15:25:36 +04:00
Marten Seemann
27549c5665 use the minimum of the two peers' max_idle_timeouts 2019-12-11 14:04:33 +04:00
Marten Seemann
8dcca046e3 don't set the idle timeout timer before the handshake completes 2019-12-11 13:50:13 +04:00
Marten Seemann
e9bced8d73 simplify populating the quic.Config 2019-12-11 12:41:26 +04:00
Marten Seemann
be59be9ef1 use the parsed header length when unpacking packets 2019-12-09 15:42:37 +08:00
Marten Seemann
490d9ddab2 refactor parsing of headers with invalid reserved bits 2019-12-09 14:57:19 +08:00
Marten Seemann
9d6ae474d7 remove stray GinkgoRecover from the server 2019-12-06 12:25:29 +07:00
Marten Seemann
12922bdec9 drop Handshake keys when receiving HANDSHAKE_DONE (as a client) 2019-12-06 10:29:48 +07:00
Marten Seemann
f7fd5d2848 drop Handshake keys as soon as the handshake completes (as a server) 2019-12-06 10:29:48 +07:00
Marten Seemann
08ec2f69fc send a HANDSHAKE_DONE frame after handshake completion (as a server) 2019-12-06 10:29:48 +07:00
Marten Seemann
556e5c5559 implement parsing and writing of the HANDSHAKE_DONE frame 2019-12-06 10:29:48 +07:00
Marten Seemann
e08b6b37c4 update the H3 ALPN to draft-24 2019-12-04 08:39:06 +07:00
Marten Seemann
f35a32989c enforce the active_connection_id_limit 2019-12-03 18:27:10 +07:00
Marten Seemann
3f6030fdb3 count the connection ID used during the handshake towards the limit 2019-12-03 18:25:15 +07:00
Marten Seemann
5607f6d8cb Merge pull request #2254 from lucas-clemente/remove-version-negotiation-error
remove the VERSION_NEGOTIATION_ERROR
2019-12-03 18:04:06 +07:00
Marten Seemann
02acf81ca1 remove the VERSION_NEGOTIATION_ERROR 2019-12-03 17:45:08 +07:00
Marten Seemann
d869b76db6 Merge pull request #2250 from lucas-clemente/remove-testlog
remove the testlog package
2019-12-01 21:06:32 +07:00
Marten Seemann
8a3bdaa19f Merge pull request #2251 from lucas-clemente/spa
retire the connection ID sent in the preferred_address transport parameter
2019-11-30 20:30:08 +07:00
Marten Seemann
77255d30bd Merge pull request #2248 from lucas-clemente/route-client-initial-retransmission
route retransmissions of the client's Initial to the right session
2019-11-30 20:27:37 +07:00