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
Marten Seemann
683f244054
rename the Cleartext Long Header type to Handshake
...
This was recently changed in the draft.
2017-11-13 10:55:33 +08:00
Marten Seemann
11364cbd81
fix encoding of the idle timeout for the TLS transport parameters
2017-11-11 19:48:41 +08:00
Marten Seemann
095c29dc2c
drop support for QUIC 37 and 38
2017-11-07 00:23:53 +07:00
Marten Seemann
a1a4f35096
send initial version in the CHLO, not the current version
...
This commit fixes two bugs:
1. In the CHLO, we need to send the initial QUIC version. It will differ
from the current version if version negotiation was performed.
2. The session setup was using the wrong version (current version, and
not the initial version), such that we would have sent the wrong version
in the TLS handshake as well.
2017-11-02 21:51:51 +07:00
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
3e6f66da79
rename the packet types according to recent draft changes
2017-11-02 18:31:04 +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
df13a0a970
implement the TLS Cookie extension
2017-11-02 16:45:43 +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
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
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