Commit Graph

3269 Commits

Author SHA1 Message Date
Marten Seemann
bfbf0bca48 always queue window updates when data is being read
There's no need to have a separate call in the flow controller interface
for this.
2019-01-22 23:46:12 +07:00
Marten Seemann
ff9bb5bd96 Merge pull request #1745 from lucas-clemente/remove-megacheck
run gometalinter with staticcheck instead of megacheck
2019-01-22 16:59:27 +07:00
Marten Seemann
6117d8c722 run gometalinter with staticcheck instead of megacheck
Megacheck was deprecated and recently removed from gometalinter:
https://github.com/alecthomas/gometalinter/pull/579.
2019-01-22 14:55:12 +07:00
Marten Seemann
de05de297f Merge pull request #1739 from lucas-clemente/connection-state
set the ConnectionState
2019-01-17 09:14:24 +07:00
Marten Seemann
a84d626cd5 Merge pull request #1733 from lucas-clemente/remove-leftover-todo
remove leftover TODO in the crypto setup
2019-01-17 09:13:53 +07:00
Marten Seemann
84037e3024 Merge pull request #1734 from lucas-clemente/ack-encryption-level
send ACK frames in the correct packet number space
2019-01-16 08:58:01 +07:00
Marten Seemann
9122bfe9ad Merge pull request #1732 from lucas-clemente/tls-handshake-write-key
retrieve the handshake write key when receiving the ServerHello
2019-01-16 08:55:47 +07:00
Marten Seemann
913431d1a4 Merge pull request #1738 from lucas-clemente/multiplexer-remove
delete unused connections from the multiplexer
2019-01-16 08:55:30 +07:00
Marten Seemann
4ba3aa0de8 set the ConnectionState 2019-01-14 11:55:07 +07:00
Jan Rüth
1a0aa50471 delete unused connections from the multiplexer 2019-01-14 11:33:14 +07:00
Marten Seemann
1306787703 Merge pull request #1730 from lucas-clemente/change-dev-version
change the version number for the development version
2019-01-11 15:38:35 +07:00
Marten Seemann
a303ad9745 always send ACKs in the correct packet number space 2019-01-11 11:12:07 +07:00
Marten Seemann
258e43ab95 rename the receivedPacketHandler to receivedPacketTracker 2019-01-11 10:52:39 +07:00
Marten Seemann
5ccc367462 start ignoring packets in ACK frames only after the handshake completed 2019-01-11 10:52:39 +07:00
Marten Seemann
ad3f39a5d7 retrieve the handshake write key when receiving the ServerHello 2019-01-11 10:52:08 +07:00
Marten Seemann
337b9f9a93 remove leftover TODO in the crypto setup 2019-01-11 09:22:17 +07:00
Marten Seemann
3f8728ddfc Merge pull request #1729 from protocol7/fix-shortheader-encryption
correctly set the 1-RTT header protection mask
2019-01-11 00:03:43 +07:00
Niklas Gustavsson
edecc88ebf Set is1RTT correctly for sealer/opener
Ensure that the rigth mask is picked for header protection.
2019-01-10 16:39:01 +01:00
Marten Seemann
3f80870922 change the version number for the development version
This now uses the highest version number reserved for quic-go in
https://github.com/quicwg/base-drafts/wiki/QUIC-Versions.
2019-01-10 22:06:29 +07:00
Marten Seemann
6fbe8d563e Merge pull request #1713 from lucas-clemente/draft-test-vectors
use the test vectors from the draft
2019-01-07 10:18:57 +07:00
Marten Seemann
62f131fcc1 Merge pull request #1716 from lucas-clemente/fix-aead-nonces
fix nonce usage in the AEAD, use the AEAD provided by qtls for Initials
2019-01-07 10:18:26 +07:00
Marten Seemann
45458b3859 add the complete packet test vectors for initial packets 2019-01-07 09:11:49 +07:00
Marten Seemann
c0e9faa505 use the initial test vectors from the draft 2019-01-07 09:07:38 +07:00
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