Commit Graph

3246 Commits

Author SHA1 Message Date
Marten Seemann
b4356d7348 fix nonce usage in the AEAD, use the AEAD provided by qtls for Initials 2019-01-07 09:04:03 +07:00
Marten Seemann
2cb72ad098 Merge pull request #1710 from lucas-clemente/proxy-remove-version
remove unneeded version parameter from proxy constructor
2019-01-07 08:48:19 +07:00
Marten Seemann
34a35b7df6 Merge pull request #1714 from lucas-clemente/fix-initial-logging
don't log Initial packets in the packet handler map
2019-01-07 08:46:03 +07:00
Marten Seemann
e6d0ea630e Merge pull request #1718 from lucas-clemente/fix-session-queue
implement a queue of session waiting to be accepted
2019-01-07 08:45:22 +07:00
Marten Seemann
ccfa4c304d Merge pull request #1721 from lucas-clemente/stream-open-errors
return a net.Error when opening streams
2019-01-07 08:44:50 +07:00
Marten Seemann
086cc85b98 Merge pull request #1712 from lucas-clemente/fix-ack-delay-for-pn0
correctly set the ack delay in an ACK of packet number 0
2019-01-07 08:44:32 +07:00
Marten Seemann
4294493a1a Merge pull request #1715 from lucas-clemente/fix-quic-ext-codepoint
fix quic_transport_parameters TLS extension code point
2019-01-07 08:43:30 +07:00
Marten Seemann
488d4a1a85 Merge pull request #1717 from lucas-clemente/key-derivation
update the HKDF labels
2019-01-07 08:38:05 +07:00
Marten Seemann
74de053685 Merge pull request #1711 from lucas-clemente/fix-1708
properly close session in handshake integration tests
2019-01-07 08:04:58 +07:00
Marten Seemann
c6360bd078 Merge pull request #1722 from lucas-clemente/remove-unused-decryption-error-check
remove unneeded check for decryption errors in session
2019-01-07 08:04:28 +07:00
Marten Seemann
9025133936 remove unneeded check for decryption errors in session 2019-01-06 17:34:24 +07:00
Marten Seemann
a2e48e204b return a net.Error when opening streams
net.Error.Temporary() will be true if no stream can be opened when the
peer's stream limit is reached.
2019-01-06 17:18:43 +07:00
Marten Seemann
181aa493e0 make sure not to return closed session from Listener.Accept() 2019-01-06 15:27:42 +07:00
Marten Seemann
90514d53d1 reject new connection attempts if the server's accept queue is full 2019-01-06 15:26:43 +07:00
Marten Seemann
1301610a54 never block when calling the onHandshakeComplete callback 2019-01-06 11:43:49 +07:00
Marten Seemann
bbbeb7d32c update the HKDF labels 2019-01-05 18:01:02 +07:00
Marten Seemann
177c81610b rename packet number encryption to header encryption 2019-01-05 18:00:22 +07:00
Marten Seemann
0485090f9a fix quic_transport_parameters TLS extension code point 2019-01-05 16:23:27 +07:00
Marten Seemann
73c4391a96 don't log Initial packets in the packet handler map 2019-01-05 16:16:58 +07:00
Marten Seemann
5e3c96024a correctly set the ack delay in an ACK of packet number 0 2019-01-05 13:05:14 +07:00
Marten Seemann
68f1d6d0ca properly close session in handshake integration tests
Otherwise there's a race condition when setting the supported versions.
2019-01-05 12:45:44 +07:00
Marten Seemann
2367ab35bb remove unneeded version parameter from proxy constructor 2019-01-05 12:36:52 +07:00
Marten Seemann
8ac77be934 Merge pull request #1703 from lucas-clemente/fix-1697
don't close the session when unpacking a packet fails
2019-01-05 10:59:41 +07:00
Marten Seemann
acd17c1f6b Merge pull request #1706 from lucas-clemente/tail-loss-integration-test
add an integration test for tail loss recovery
2019-01-05 10:58:43 +07:00
Marten Seemann
131f561be0 don't close the session when unpacking a packet fails
Before a packet is successfully authenticated, we can't be sure if this
is a packet that was injected by an attacker. If any error occurs before
authenticating the packet, we should just drop it.
2019-01-03 18:53:43 +07:00
Marten Seemann
855b643c7c move frame parsing to the session
This way, we can handle every parsed frame directly, and avoid
allocating a slice of parsed frames.
2019-01-03 18:53:36 +07:00
Marten Seemann
05645b546c remove special case for Retry packets from the session
Retry packets are never passed to the session, so there's no need to
handle them there.
2019-01-03 18:52:32 +07:00
Marten Seemann
203994d06b add an integration test for tail loss recovery 2019-01-03 18:43:17 +07:00
Marten Seemann
cf0182e61c use the same package in integration tests 2019-01-03 18:42:49 +07:00
Marten Seemann
3fb58da7e6 Merge pull request #1707 from lucas-clemente/remove-raw-header
remove unnecessary Raw byte slice from the header
2019-01-03 18:39:45 +07:00
Marten Seemann
439cdd2679 Merge pull request #1702 from lucas-clemente/fix-1701
check that the packet is large enough for the header encryption sample
2019-01-03 18:37:10 +07:00
Marten Seemann
cd96cc745d Merge pull request #1704 from lucas-clemente/fix-coalesced-logging
fix logging of coalesced packets
2019-01-03 18:36:38 +07:00
Marten Seemann
31a164c84f Merge pull request #1705 from lucas-clemente/fix-drop-tests
don't run the handshake drop integration tests twice
2019-01-03 16:18:20 +07:00
Marten Seemann
5a37e8983d remove unnecessary Raw byte slice from the header 2019-01-03 10:14:08 +07:00
Marten Seemann
3691a18849 Merge pull request #1692 from lucas-clemente/unify-tlp-and-rto
unify TLP and RTO
2019-01-03 10:07:00 +07:00
Marten Seemann
41ca178dcc don't run the handshake drop integration tests twice 2019-01-02 10:04:38 +07:00
Marten Seemann
5d535166ca fix logging of coalesced packets 2019-01-01 16:51:45 +07:00
Marten Seemann
ba45256b32 check that the packet is large enough for the header encryption sample 2019-01-01 13:06:02 +07:00
Marten Seemann
8b2eb76b75 Merge pull request #1699 from lucas-clemente/fix-short-packet-cutting
fix length check for too short packets
2019-01-01 12:08:25 +07:00
Marten Seemann
99b1e50722 fix length check for too short packets 2019-01-01 11:37:09 +07:00
Marten Seemann
673ad95a44 Merge pull request #1698 from lucas-clemente/coalesced-packets
implement parsing of coalesced packets
2019-01-01 10:03:18 +07:00
Marten Seemann
77d48248ff unify TLP and RTO
This doesn't yet implement the persistent congestion detection, since
the specification of that still is in flux.
2019-01-01 09:53:09 +07:00
Marten Seemann
b32fb438af make putting back packet buffers a member function of packetBuffer 2019-01-01 09:50:35 +07:00
Marten Seemann
d3ea7c0c4c implement handling of coalesced packets 2019-01-01 09:50:35 +07:00
Marten Seemann
6ce7a204fc move cutting of packets with a length to the packet handler map 2019-01-01 09:50:35 +07:00
Marten Seemann
767dbdd545 put back packet buffers after processing a packet
This introduces a reference counter in the packet buffer, which will be
used to process coalesced packets.
2019-01-01 09:50:29 +07:00
Marten Seemann
ed27d0d989 Merge pull request #1696 from lucas-clemente/use-iv-in-aead
use the IV when sealing and opening
2018-12-31 00:28:07 +07:00
Marten Seemann
413844d0bc use in-place decryption when opening packets 2018-12-30 12:41:41 +07:00
Marten Seemann
e3d2c81729 simplify packing of packets 2018-12-30 12:41:30 +07:00
Marten Seemann
be4bdbfad9 remove the encryption level from the packed packet struct
This was only needed in gQUIC. In IETF QUIC, We can always derive the
encryption level from the header type when needed.
2018-12-30 12:37:04 +07:00