Commit Graph

972 Commits

Author SHA1 Message Date
Marten Seemann
eb19ec6096 Merge pull request #2402 from lucas-clemente/reset-pto-count-when-dropping-pn-space
reset the PTO count when dropping a packet number space
2020-03-10 16:49:56 +07:00
Marten Seemann
54775ffaad Merge pull request #2415 from lucas-clemente/vnp-fixed-bit
only set the 0x80 bit to 1 for version negotiation packets
2020-03-10 16:48:29 +07:00
Marten Seemann
0b6750d4ab Merge pull request #2407 from lucas-clemente/fix-spa-typo
fix typo in preferredAddressParameterID constant name
2020-03-10 16:47:11 +07:00
Marten Seemann
c720250b9b only set the 0x80 bit to 1 for version negotiation packets 2020-03-10 14:43:19 +07:00
Marten Seemann
273a320f98 add support for the key_updated event for TLS key updates 2020-03-08 17:09:07 +07:00
Marten Seemann
19ffcdd2ff fix typo in preferredAddressParameterID constant name 2020-03-05 09:56:15 +07:00
Marten Seemann
cef5416356 reset the PTO count when dropping a packet number space 2020-03-05 08:48:33 +07:00
Marten Seemann
3734fbc11e fix ChaCha20 header protection 2020-03-02 18:24:50 +07:00
Marten Seemann
114a790fd9 use the CipherSuiteName function exposed by qtls
This function was recently added to the standard library TLS
implementation.
2020-03-01 13:15:54 +07:00
Marten Seemann
6fe4878f0e update to qtls based on Go 1.14's TLS implementation 2020-02-28 16:48:29 +07:00
Marten Seemann
c88a69034d use Go 1.14's embedded interfaces, update CIs 2020-02-28 15:25:53 +07:00
Marten Seemann
c6a230f3d6 Merge pull request #2388 from lucas-clemente/crypto-retransmissions
refactor the way crypto retransmissions are packed
2020-02-28 15:19:15 +07:00
Marten Seemann
70263249ee simplify casting of the (q)tls.ClientSessionCache 2020-02-26 16:13:57 +07:00
Marten Seemann
d024df7c8e implement splitting of CRYPTO frames 2020-02-26 11:24:15 +07:00
Marten Seemann
e57caf0bae send an INVALID_TOKEN error when receiving an invalid token 2020-02-25 19:43:57 +07:00
Marten Seemann
2ea6a294a9 send the CONNECTION_CLOSE in all available encryption levels 2020-02-25 17:10:44 +07:00
Marten Seemann
24b840f56d fix dropping of the Initial packet number space for clients 2020-02-24 13:57:54 +07:00
Marten Seemann
212bfed0d2 Merge pull request #2367 from lucas-clemente/varint-transport-parameters
change the transport parameter format to varint
2020-02-24 13:56:39 +07:00
Marten Seemann
b658f92060 use the golang/x/crypto ChaCha20 implementation
https://go-review.googlesource.com/c/crypto/+/206638 added the
SetCounter method required for QUIC's header protection.
2020-02-22 10:53:41 +07:00
Marten Seemann
9ee6efd506 change the transport parameter format to varint 2020-02-22 09:36:02 +07:00
Marten Seemann
a5fc72047e simplify pruning of old ACK ranges 2020-02-21 15:46:58 +07:00
Marten Seemann
f317a471bb use a single constructor for SentPacketHandler and ReceivedPacketHandler 2020-02-21 15:45:24 +07:00
Marten Seemann
e97e3040ed make sure the client sends packets to unblock the server 2020-02-21 12:29:11 +07:00
Marten Seemann
d20c1bfaed remove unused parameter from SentPacketHandler.ReceivedAck 2020-02-21 10:05:17 +07:00
Marten Seemann
73937e8753 Merge pull request #2349 from lucas-clemente/coalesced-packets
implement sending of coalesced packets
2020-02-20 16:53:33 +07:00
Marten Seemann
ad7327845c Merge pull request #2358 from lucas-clemente/drop-0rtt-keys
drop 0-RTT read keys after 3 PTO
2020-02-20 16:47:14 +07:00
Marten Seemann
23059d5a68 Merge pull request #2280 from lucas-clemente/zero-rtt-queue
queue 0-RTT for 100ms to allow the corresponding Initial to arrive
2020-02-20 16:44:03 +07:00
Marten Seemann
5aad7cae5d send coalesced packets 2020-02-20 16:42:56 +07:00
Marten Seemann
d08c2145a4 drop 0-RTT read keys after 3 PTO 2020-02-18 17:51:05 +07:00
Marten Seemann
1692adb142 fix unit tests for the early retransmit timer 2020-02-18 12:04:27 +07:00
zverevm
4f7b0b1675 Do not ignore loss timer. 2020-02-17 12:36:42 +01:00
Marten Seemann
f034e8ba19 set the LocalAddr that is used in the tls.ClientHelloInfo.Conn 2020-02-16 14:10:30 +07:00
Marten Seemann
643f0b4c67 drop incoming packets when the server's receive queue is full 2020-02-15 16:43:00 +07:00
Marten Seemann
ba095dd3ff delete 0-RTT queues if no Initial is received within 100ms 2020-02-15 15:44:09 +07:00
Marten Seemann
2b7133a6e2 implement a queue for 0-RTT packets 2020-02-15 15:44:08 +07:00
Marten Seemann
5a7f743733 qlog lost packets 2020-02-12 10:42:38 +07:00
Marten Seemann
f13ca7e791 qlog loss recovery metrics 2020-02-12 10:42:38 +07:00
Marten Seemann
85abf5fc53 save the RTT in the session ticket and use it when accepting 0-RTT 2020-02-10 17:42:10 +07:00
Marten Seemann
8cde4ab638 refactor how session tickets are sent
Previously, RunHandshake() would send the session tickets. Now, the
session initiates the sending of the session ticket. This simplifies the
setup a bit, and it will make it possible to include the RTT estimate in
the session ticket without accessing the RTTStats concurrently.
2020-02-10 17:42:09 +07:00
Marten Seemann
3e32a693ad introduce a marshaling format for data saved in the session ticket 2020-02-10 18:02:45 +08:00
Marten Seemann
182a25d2b9 don't use ASN.1 for marshalling data for the session ticket 2020-02-08 21:42:11 +01:00
Marten Seemann
69ab66ba82 save the RTT along the session ticket and use it on resumed connections 2020-02-08 21:42:11 +01:00
Marten Seemann
5893e1ec28 add a workaround for the ChaCha20 bug 2020-01-31 12:19:58 +07:00
Marten Seemann
539097fc6e return a quic.ConnectionState from Session.ConnectionState() 2020-01-30 09:21:09 +07:00
Marten Seemann
d7948d627a drop 0-RTT keys when the server rejects 0-RTT 2020-01-30 09:12:31 +07:00
Marten Seemann
2473eb0895 queue 0-RTT packets for retransmission when 0-RTT is rejected 2020-01-30 09:11:44 +07:00
Marten Seemann
bc25840519 use 0.5-RTT data to open the control stream in the http3 server 2020-01-29 10:40:06 +07:00
Marten Seemann
e8cffacc77 Merge pull request #2321 from lucas-clemente/update-mockgen
update gomock to v1.4.0, simplify mock generation
2020-01-29 00:01:00 +07:00
Marten Seemann
a93e544c94 remove Session.Close()
Session.Close() sends a transport-level error code. Applications should
not be able to call this function, but use CloseWithError() instead.
2020-01-26 17:41:53 +07:00
Marten Seemann
4fa5cfdca9 simplify generation of mocks for internal types 2020-01-26 13:24:35 +07:00