Commit Graph

2060 Commits

Author SHA1 Message Date
Marten Seemann
96f65f922f Merge pull request #927 from lucas-clemente/fix-925
fix client handshake failure when the server supports unknown versions
2017-11-02 21:34:04 +07:00
Marten Seemann
d77ba5271f Merge pull request #922 from lucas-clemente/fix-920
reject packets that use the wrong or unknown packet types
2017-11-02 21:28:20 +07:00
Marten Seemann
589decab64 Merge pull request #930 from lucas-clemente/fix-public-reset-logging
fix logging of unparseable PUBLIC_RESETs
2017-11-02 21:16:03 +07:00
Marten Seemann
b40d249953 reject packets that use the wrong or unknown packet types 2017-11-02 20:47:02 +07:00
Marten Seemann
30effa5bdd Merge pull request #921 from lucas-clemente/fix-919
rename the packet types according to recent draft changes
2017-11-02 20:45:43 +07:00
Marten Seemann
93703f8a4a fix logging of unparseable PUBLIC_RESETs 2017-11-02 20:44:59 +07:00
Marten Seemann
3e6f66da79 rename the packet types according to recent draft changes 2017-11-02 18:31:04 +07:00
Marten Seemann
49e305f97f Merge pull request #915 from lucas-clemente/fix-914
only use little endian byte order for gQUIC 37 and 38
2017-11-02 17:59:55 +07:00
Marten Seemann
43c23ff5fa fix client handshake failure when the server supports unknown versions 2017-11-02 17:41:06 +07:00
Marten Seemann
1f6f5bb736 Merge pull request #836 from lucas-clemente/cookies
implement the TLS Cookie extension
2017-11-02 17:38:27 +07:00
Marten Seemann
aba1dd13ba only use little endian byte order for gQUIC 37 and 38
That way, when adding new non-gQUIC versions, they will use big endian.
2017-11-02 16:46:22 +07:00
Marten Seemann
df13a0a970 implement the TLS Cookie extension 2017-11-02 16:45:43 +07:00
Marten Seemann
085702df36 Merge pull request #924 from lucas-clemente/fix-chrome-tests-on-travis
fix Chrome tests on Travis, remove test retries
2017-11-02 16:43:59 +07:00
Marten Seemann
e810c097da remove the retries for the Chrome integration tests 2017-11-02 16:18:29 +07:00
Marten Seemann
fb054dea18 log Chrome version on Travis 2017-11-01 22:27:39 +07:00
Marten Seemann
b8d1ffef13 fix host resolver rule in Chrome integration test
This was the reason the Chrome integration tests have been failing
recently.
2017-11-01 22:26:29 +07:00
Marten Seemann
cc5f978996 Merge pull request #912 from lucas-clemente/fix-911
fix gQUIC version numbers
2017-10-30 19:46:36 +07:00
Marten Seemann
09334f432e Merge pull request #909 from lucas-clemente/handle-ietf-style-vnps
handle IETF draft style Version Negotiation Packets
2017-10-30 19:44:34 +07:00
Marten Seemann
1614e31681 Merge pull request #916 from lucas-clemente/fix-handshake-retransmissions
fix the exponential backoff when sending handshake retransmissions
2017-10-30 18:48:52 +07:00
Marten Seemann
0a5030e02b Merge pull request #910 from lucas-clemente/send-ietf-vnps
send IETF draft style version negotiation packets
2017-10-30 18:48:35 +07:00
Marten Seemann
b0f34e776e send IETF draft style version negotiation packets
Send a gQUIC Version Negotiation Packet, if the client packet has a
Public Header. If the client has an IETF draft style header, send an
IETF draft style Version Negotiation Packet.
2017-10-30 18:23:12 +07:00
Marten Seemann
f412faad7b fix the exponential backoff when sending handshake retransmissions 2017-10-30 18:10:42 +07:00
Marten Seemann
f6e44e3e8e fix gQUIC version numbers 2017-10-30 11:51:26 +07:00
Marten Seemann
fc3087fab3 handle IETF draft style Version Negotiation Packets 2017-10-29 16:47:15 +07:00
Marten Seemann
515babb4bd Merge pull request #902 from lucas-clemente/long-header-types
set the Long Header type
2017-10-29 15:48:34 +07:00
Marten Seemann
3f62ea8673 set the Long Header packet type based on the state of the handshake 2017-10-29 14:08:08 +07:00
Marten Seemann
a65929f6cf add logging for the packet header 2017-10-27 22:56:41 +07:00
Marten Seemann
3e39991e1e use the non-blocking of mint to cycle through the handshake 2017-10-27 22:54:40 +07:00
Marten Seemann
fcc380187a Merge pull request #899 from lucas-clemente/fix-898
encrypt unprotected packets with a connection-dependent key
2017-10-27 22:52:04 +07:00
Marten Seemann
3edab90841 Merge pull request #896 from lucas-clemente/big-endian-version-numbers
make version numbers consistent with the IETF draft
2017-10-27 17:37:22 +07:00
Marten Seemann
4f86995e48 encrypt unprotected packets with a connection-dependent key 2017-10-27 17:35:08 +07:00
Marten Seemann
ddea1d83ab use gomock to mock crypto.AEAD in the crypto setup tests 2017-10-27 17:35:08 +07:00
Marten Seemann
d98a11bb35 save version numbers such that can be written in big endian
This makes the version number representation consistent with the IETF
draft.
2017-10-27 17:24:24 +07:00
Marten Seemann
e81795e49b Merge pull request #895 from lucas-clemente/new-header
implement the IETF draft Header
2017-10-27 17:18:15 +07:00
Marten Seemann
64a9de3efb Merge pull request #897 from lucas-clemente/stricter-flow-control
make flow control stricter when receiving final offsets
2017-10-27 17:17:54 +07:00
Marten Seemann
4a4c56d8d2 Merge pull request #903 from lucas-clemente/go192
update CIs to Go 1.9.2
2017-10-27 16:57:48 +07:00
Marten Seemann
4556ad01e5 use the new packet header for connections using TLS 2017-10-27 16:54:47 +07:00
Marten Seemann
6c394acde7 never use a 6 byte packet number
According to the IETF draft, the only packet number lengths are 1, 2 and
4 bytes. With the given formula for the packet number derivation, we
would have only sent a 6 byte packet number if the difference between
the largest unacked and the current packet number exceeded 2^31, so this
would never have happened anyway.
2017-10-27 16:51:59 +07:00
Marten Seemann
bbe9affa27 reject version negotiation packets with an empty version list 2017-10-27 16:51:59 +07:00
Marten Seemann
7cb8e87580 implement parsing of IETF Version Negotiation Packets 2017-10-27 16:51:57 +07:00
Marten Seemann
fad279cb75 implement parsing and writing of the IETF QUIC Header 2017-10-27 16:51:04 +07:00
Marten Seemann
d7a09e7667 reject inconsistent final stream offsets 2017-10-27 16:39:41 +07:00
Marten Seemann
c28b5b5879 update CIs to Go 1.9.2 2017-10-27 14:10:13 +07:00
Marten Seemann
636bf4578c error when receiving stream data with a larger offset than the final offset
This could happen when a peer send a STREAM frame with the Fin bit set,
and then sends STREAM frames with a higher offset.
2017-10-25 10:43:29 +07:00
Marten Seemann
ac82aeda8b treat the connection ID as a big endian value 2017-10-25 10:09:15 +07:00
Marten Seemann
816cf90ea7 Merge pull request #892 from lucas-clemente/no-header-stream-prio
remove the prioritisation of the H2 header stream
2017-10-25 10:07:52 +07:00
Marten Seemann
b9ffeb7c88 don't prioritize the header stream
This was an optimization for H2/QUIC, which always violated the QUIC
layering. The H2 header stream will (probably) be removed in IETF QUIC.
2017-10-25 09:55:50 +07:00
Marten Seemann
c06a06300d Merge pull request #891 from lucas-clemente/crypto-stream-is-special
handle the crypto stream separately
2017-10-25 09:54:21 +07:00
Marten Seemann
5ee7b205c6 handle the crypto stream separately 2017-10-25 09:13:48 +07:00
Marten Seemann
9825ddb43a simplify the interaction with mint 2017-10-25 09:13:47 +07:00