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
Marten Seemann
a02a6197c2
fix race condition in the client crypto setup tests
2017-12-26 15:35:00 +07:00
Marten Seemann
14d4e5e9ec
update mint
...
mint recently changed the signature of ExtensionList.Find.
2017-12-22 16:10:37 +07:00
Marten Seemann
23ce5a8554
drop packets for new gQUIC connections that are too small
2017-12-08 12:34:59 +07:00
Marten Seemann
25a6dc9654
implement stateless handling of Initial packets for the TLS server
2017-12-08 08:45:54 +07:00
Marten Seemann
7ba613c3b9
use the mint default cookie protector to encrypt and decrypt cookies
2017-12-07 18:20:22 +07:00
Marten Seemann
80a827f133
fix the crypto setup so that it works with the recent mint changes
...
mint now supports stateless retries, and requires that the cookie
protector is set in the mint.Config and returns a new alert when a
retry is performed.
2017-12-07 13:49:45 +07:00
Marten Seemann
8c2404edf5
send a reserved version number in the SHLO
2017-12-06 10:20:22 +07:00
Marten Seemann
1a3852aec6
send a reserved version number in the EncryptedExtensions message
2017-12-06 10:20:22 +07:00
Marten Seemann
7487dc22bf
Merge pull request #977 from lucas-clemente/fix-971
...
update validation of version negotiation
2017-12-06 07:02:49 +07:00
Marten Seemann
7c8715616e
update validation of version negotiation
...
The negotiated_version parameter was recently moved from the
client_hello TLS handshake message to the encrypted_extensions.
2017-12-05 10:35:04 +07:00
Marten Seemann
c30064bb51
parse TLS extensions containing the initial_max_stream_id_uni parameter
...
We're not sending the initial_max_stream_id_uni parameter, which
implicitely sets this value to 0, i.e. the peer is not allowed to open
unidirectional streams.
2017-12-05 09:17:43 +07:00
Marten Seemann
a72efca38d
don't require the initial_max_stream_id in the transport parameters
...
The draft was recently changed to make this value optional.
2017-12-05 08:56:49 +07:00
Jan Rüth
281fec1b2d
Make error chan not block for a single write, allowing ParseHandshakeMessage goroutine to gracefully exit
2017-11-22 09:54:03 +01:00