Marten Seemann
c840bd4177
allow version negotiation between IETF QUIC and gQUIC, and vice versa
2018-08-15 17:10:05 +07:00
Marten Seemann
924bcc5914
add some logging to the client's crypto setup
2018-05-08 14:24:38 +09:00
Marten Seemann
0c014c0aff
fix deadlock when receiving two packets with diversification nonces
2018-04-24 21:14:58 +09:00
Marten Seemann
948eef3e42
create a logger interface and use it everywhere
2018-04-04 13:03:28 +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
1f9ab3b65f
remove unused key exchange function from client crypto setup
2018-03-28 05:31:56 +07: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
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
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
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
43c23ff5fa
fix client handshake failure when the server supports unknown versions
2017-11-02 17:41:06 +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
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
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
282b423f7d
pass the crypto stream to the crypto setup constructor
...
The crypto stream is opened during the session setup. Passing it to the
crypto setup directly helps simplify the constructor.
2017-10-25 09:13:47 +07:00
Marten Seemann
f3e9bf4332
remove the params negotiator
2017-10-20 18:08:21 +07:00
Marten Seemann
9cb7480050
rename connection ID truncation to connection ID omission
2017-09-29 22:52:54 +07:00
Marten Seemann
c95f2054a8
rename the ConnectionParametersManager to ParamsNegotiator
2017-09-28 18:15:33 +07:00
Marten Seemann
ebb4150e63
separate connection parameters negotiation and gQUIC handshake parsing
2017-09-28 18:15:32 +07:00
Marten Seemann
95901cdee4
initialize the connection parameters manager in the crypto setup
2017-09-28 18:15:32 +07:00
Marten Seemann
e603715949
make handshake and crypto internal packages
2017-09-21 11:52:21 +07:00