Commit Graph

106 Commits

Author SHA1 Message Date
Marten Seemann
5102294991 use separate chans to signal handshake events and handshake completion 2018-10-26 16:11:25 +07:00
Marten Seemann
74952a4331 check that every transport parameter is sent at most once 2018-10-24 23:33:37 +07:00
Marten Seemann
c1f55ba910 use tls.Config.ServerName for the passing the hostname around 2018-10-02 14:47:18 -07:00
Marten Seemann
d0bc89fb74 make the idle_timeout transport parameter optional 2018-09-19 13:28:10 -04:00
Marten Seemann
e0e831f1fc implement (un)marshalling of the transport parameters 2018-08-20 15:34:37 +07:00
Marten Seemann
00e1884a88 move reading of stateless reset tokens to the transport parameter struct 2018-08-20 15:34:37 +07:00
Marten Seemann
2c75b795ae move adding of stateless reset tokens to the transport parameter struct 2018-08-20 15:34:37 +07:00
Marten Seemann
1bb9a7e1ac don't require the flow control values in the transport parameters 2018-08-19 10:36:47 +07:00
Marten Seemann
623fcd85b0 move the mint cookie protector to the handshake package
It's duplicate code now, but it reduces the dependency on mint.
2018-08-16 11:50:43 +07:00
Marten Seemann
c840bd4177 allow version negotiation between IETF QUIC and gQUIC, and vice versa 2018-08-15 17:10:05 +07:00
Marten Seemann
77f5d30338 buffer writes to the crypto stream
mint performs a Write for every state change. This results in a lot of
small packets getting sent when using an unbuffered connection. By
buffering, we make sure that packets are filled up properly.
2018-08-13 08:47:29 +07:00
Marten Seemann
f88b7bb175 implement the new Retry mechanism 2018-08-13 08:47:29 +07:00
Marten Seemann
6e299157d4 implement the disable_migration transport parameter and use it 2018-07-02 22:18:28 +07:00
Marten Seemann
d32665af9d remove FHL2 experiment
FHL2 was an experiment in Chrome, run in Q036, which introduced HOL
blocking. This experiment is over, so we can remove the code to send a
PUBLIC_RESET when a peer initiates this experiment.
2018-06-10 17:02:06 +02:00
Marten Seemann
63195fcb68 change the TLS extension code point 2018-06-05 15:11:49 +02:00
Marten Seemann
924bcc5914 add some logging to the client's crypto setup 2018-05-08 14:24:38 +09:00
Marten Seemann
39757c1a1a add some logging to the server's crypto setup 2018-05-08 14:24:38 +09:00
Marten Seemann
f29c37b951 rename the constants for the max stream ids in the transport parameters
No functional change expected.
2018-05-06 12:13:04 +09:00
Lucas Clemente
5907bfa168 Fix KEX test on windows
This makes the code rotate the key if `time.Since(kexCurrentTime) == kexLifetime`, which prevents an issue with low-resolution clocks (e.g. in our appveyor tests).
2018-04-30 11:14:46 +02:00
Marten Seemann
0c014c0aff fix deadlock when receiving two packets with diversification nonces 2018-04-24 21:14:58 +09:00
Marten Seemann
118509cf76 fix flaky key exchange generation test on AppVeyor 2018-04-22 18:36:22 +09:00
Marten Seemann
74ccd194f7 remove the omit_connection_id TLS transport parameter 2018-04-19 13:47:02 +09:00
Marten Seemann
1a035a265c change the type of Connection ID to byte slice 2018-04-18 22:41:24 +09:00
Marten Seemann
948eef3e42 create a logger interface and use it everywhere 2018-04-04 13:03:28 +07:00
Marten Seemann
302d2a1715 don't use trial decryption for IETF QUIC 2018-03-31 14:29:44 +07:00
Marten Seemann
6c1eba5848 generate the diversification nonce when creating the server crypto setup 2018-03-31 14:29:44 +07:00
Marten Seemann
c6526ad927 replace the SetDiversificationNonce crypto setup method by a chan 2018-03-31 14:29:44 +07:00
Marten Seemann
48731221c0 correctly handle errors when creating a new gQUIC key exchange 2018-03-28 05:33:26 +07:00
Marten Seemann
1f9ab3b65f remove unused key exchange function from client crypto setup 2018-03-28 05:31:56 +07:00
Marten Seemann
b40942d39e send stream counts, not stream IDs, in the transport parameters 2018-03-16 17:41:21 +00:00
Marten Seemann
1fffb88553 fix typo in function name 2018-03-16 17:41:21 +00:00
Marten Seemann
0f401b0b37 parse the max_packet_size in the TLS transport parameters 2018-03-10 14:14:09 +07:00
Marten Seemann
a588b9e140 make golint happier 2018-03-02 16:58:19 +07:00
Marten Seemann
be2be3872f Merge pull request #1194 from lucas-clemente/log-transport-params
log the TLS Transport Parameters
2018-02-27 01:03:19 +08:00
Marten Seemann
2ab2baf4bc don't send greased version numbers for gQUIC 2018-02-25 23:19:52 +08:00
Marten Seemann
86e57706df run gofmt -s 2018-02-23 23:38:08 +08:00
Marten Seemann
78da50ee7c log the TLS Transport Parameters 2018-02-23 23:12:30 +08:00
Marten Seemann
81974d30d6 run gosimple in gometalinter 2018-02-23 22:42:32 +08:00
Marten Seemann
c3ec497a2e run unconvert in gometalinter 2018-02-23 22:42:22 +08:00
Marten Seemann
a9797d9341 run structcheck in gometalinter 2018-02-23 22:39:08 +08:00
Marten Seemann
6555907162 run goimports in gometalinter 2018-02-23 22:39:08 +08:00
Marten Seemann
11af98e338 run misspell in gometalinter 2018-02-23 22:39:08 +08:00
Marten Seemann
58b20c6009 make the number of incoming streams configurable, for IETF QUIC 2018-02-23 22:15:31 +08:00
Marten Seemann
86b25dddce Merge pull request #1177 from lucas-clemente/transport-parameters-new-sesssion-ticket
don't accept transport parameters in the NewSessionTicket message
2018-02-18 14:03:31 +08:00
Marten Seemann
f0eb5a60f1 don't accept transport parameters in the NewSessionTicket message
This was recently removed from the WG draft.
2018-02-08 11:09:42 +08:00
Marten Seemann
c9b95abe7e use an unbuffered chan for the client transport parameters
The client reads the transport parameters from the Encrypted Extensions
message. These transport parameters are passed to the session's run
loop's select statement via a channel.
We have to use an unbuffered channel here to make sure that the session
actually processes the transport parameters immediately.
2018-02-08 11:04:27 +08:00
Marten Seemann
cd4bcda458 read and write the stream id limits sent in the TLS handshake 2018-02-06 08:30:57 +08:00
Marten Seemann
1cc209e4fb update mint, and adapt to the new use of the extension handler 2018-02-02 08:18:29 +08:00
Marten Seemann
66fd3b5195 expose the ConnectionState in the Session
The ConnectionState contains basic details about the QUIC connection.
2018-01-11 16:27:42 +07:00
Marten Seemann
99a2853e7d remove non forward-secure dialing
This was broken for a long time, and won't be available when using the
TLS 1.3 handshake.
2018-01-02 23:26:55 +07:00