Commit Graph

344 Commits

Author SHA1 Message Date
Marten Seemann
78ba619a0b split the qlog package into a logging and a qlog package 2020-07-01 16:49:24 +07:00
Marten Seemann
07d4fd0991 use the new qtls interface for (re)storing app data with a session state
Application data is now retrieved and restored via two callbacks on the
qtls.Config. This allows us the get rid of the rather complex wrapping
of the qtls.ClientSessionCache. Furthermore, it makes sure that we only
restore the application data when qtls decides to actually use the
ticket.
2020-07-01 14:00:08 +07:00
Marten Seemann
f926945ae5 Merge pull request #2632 from lucas-clemente/remove-superfluous-0rtt-logging
remove superfluous parameters logged when not doing 0-RTT
2020-07-01 13:55:37 +07:00
Marten Seemann
3e454ad2f7 remove superfluous parameters logged when not doing 0-RTT 2020-06-27 14:33:11 +07:00
Marten Seemann
012e62112d drop support for Go 1.13 2020-06-25 15:44:50 +07:00
Marten Seemann
e193568342 update initial salts and test vectors for draft-29 2020-06-05 09:54:14 +07:00
Marten Seemann
28fd878778 add a unit test using the ChaCha20 test vector from the draft 2020-06-03 10:02:15 +07:00
Marten Seemann
cdb22513f3 save the source conn ID used on the Retry packet in the Retry token 2020-05-29 19:50:14 +07:00
Marten Seemann
b391cce35c always send the original_destination_connection_id TP as a server 2020-05-29 19:50:14 +07:00
Marten Seemann
25b3eb8a37 fix race condition in the TLS extension handler test 2020-05-05 18:13:14 +07:00
Marten Seemann
d277e013ab fix race condition in the crypto setup tests 2020-05-05 18:13:14 +07:00
Marten Seemann
d4757395b6 make it possible to run the handshake unit tests with race detector 2020-05-05 18:13:12 +07:00
Marten Seemann
97e191f3b4 update the ChaCha implementation, remove 0xffffffff workaround 2020-04-24 10:18:41 +07:00
Marten Seemann
6bb11abcd7 use the optimized HKDF-Expand-Label everywhere 2020-04-09 08:33:59 +07:00
Marten Seemann
816019b94e add an optimized implementation of HKDF-Expand-Label
The standard library uses cryptobyte.Builder in hkdfExpandLabel. This
costs quite a bit of performance. Using an optimized implementation
speeds up the initialization of the AEAD used for the Initial encryption
level by ~15%.
2020-04-09 08:16:23 +07:00
Marten Seemann
3ac2fb3161 make quic-go build with both Go 1.13 and 1.14 2020-04-09 07:51:18 +07:00
Marten Seemann
8fd2674ce4 fix conversion of qtls.ClientHelloInfo in GetCertificate 2020-04-08 16:19:45 +07:00
Marten Seemann
66d50b4289 fix conversion of qtls.ClientHelloInfo in GetConfigForClient 2020-04-08 15:56:30 +07:00
Marten Seemann
ef901e3435 use the current timestamp of every event in qlog 2020-03-23 16:25:42 +07:00
Marten Seemann
6d61dccc2f rename the constructors for the various qerr.Error flavors 2020-03-21 10:53:03 +07:00
Marten Seemann
0ef4f06189 move the transport parameters from the handshake to the wire package 2020-03-13 16:20:11 +07:00
Marten Seemann
bf2f91cae1 qlog key updates 2020-03-10 17:44:28 +07:00
Marten Seemann
e2e6f79c25 Merge pull request #2405 from lucas-clemente/remember-active-conn-id-limit
remember the value of the active_connection_id_limit transport parameter
2020-03-10 16:56:26 +07:00
Marten Seemann
2cee7dd88a Merge pull request #2408 from lucas-clemente/update-golang-ci
update GolangCI-Lint to v1.23.8
2020-03-10 16:53:41 +07:00
Marten Seemann
0b6750d4ab Merge pull request #2407 from lucas-clemente/fix-spa-typo
fix typo in preferredAddressParameterID constant name
2020-03-10 16:47:11 +07:00
Marten Seemann
b45050b824 remember the value of the active_connection_id_limit transport parameter 2020-03-08 18:16:03 +07:00
Marten Seemann
273a320f98 add support for the key_updated event for TLS key updates 2020-03-08 17:09:07 +07:00
Marten Seemann
0b3340493a update GolangCI-Lint to v1.23.8 2020-03-05 10:20:15 +07:00
Marten Seemann
19ffcdd2ff fix typo in preferredAddressParameterID constant name 2020-03-05 09:56:15 +07:00
Marten Seemann
3734fbc11e fix ChaCha20 header protection 2020-03-02 18:24:50 +07:00
Marten Seemann
114a790fd9 use the CipherSuiteName function exposed by qtls
This function was recently added to the standard library TLS
implementation.
2020-03-01 13:15:54 +07:00
Marten Seemann
6fe4878f0e update to qtls based on Go 1.14's TLS implementation 2020-02-28 16:48:29 +07:00
Marten Seemann
c88a69034d use Go 1.14's embedded interfaces, update CIs 2020-02-28 15:25:53 +07:00
Marten Seemann
70263249ee simplify casting of the (q)tls.ClientSessionCache 2020-02-26 16:13:57 +07:00
Marten Seemann
2ea6a294a9 send the CONNECTION_CLOSE in all available encryption levels 2020-02-25 17:10:44 +07:00
Marten Seemann
212bfed0d2 Merge pull request #2367 from lucas-clemente/varint-transport-parameters
change the transport parameter format to varint
2020-02-24 13:56:39 +07:00
Marten Seemann
b658f92060 use the golang/x/crypto ChaCha20 implementation
https://go-review.googlesource.com/c/crypto/+/206638 added the
SetCounter method required for QUIC's header protection.
2020-02-22 10:53:41 +07:00
Marten Seemann
9ee6efd506 change the transport parameter format to varint 2020-02-22 09:36:02 +07:00
Marten Seemann
d08c2145a4 drop 0-RTT read keys after 3 PTO 2020-02-18 17:51:05 +07:00
Marten Seemann
f034e8ba19 set the LocalAddr that is used in the tls.ClientHelloInfo.Conn 2020-02-16 14:10:30 +07:00
Marten Seemann
85abf5fc53 save the RTT in the session ticket and use it when accepting 0-RTT 2020-02-10 17:42:10 +07:00
Marten Seemann
8cde4ab638 refactor how session tickets are sent
Previously, RunHandshake() would send the session tickets. Now, the
session initiates the sending of the session ticket. This simplifies the
setup a bit, and it will make it possible to include the RTT estimate in
the session ticket without accessing the RTTStats concurrently.
2020-02-10 17:42:09 +07:00
Marten Seemann
3e32a693ad introduce a marshaling format for data saved in the session ticket 2020-02-10 18:02:45 +08:00
Marten Seemann
182a25d2b9 don't use ASN.1 for marshalling data for the session ticket 2020-02-08 21:42:11 +01:00
Marten Seemann
69ab66ba82 save the RTT along the session ticket and use it on resumed connections 2020-02-08 21:42:11 +01:00
Marten Seemann
5893e1ec28 add a workaround for the ChaCha20 bug 2020-01-31 12:19:58 +07:00
Marten Seemann
539097fc6e return a quic.ConnectionState from Session.ConnectionState() 2020-01-30 09:21:09 +07:00
Marten Seemann
d7948d627a drop 0-RTT keys when the server rejects 0-RTT 2020-01-30 09:12:31 +07:00
Marten Seemann
4fa5cfdca9 simplify generation of mocks for internal types 2020-01-26 13:24:35 +07:00
Marten Seemann
20e222b399 Merge pull request #2305 from lucas-clemente/update-retry-key
update Retry key and nonce to the values used in draft-25
2020-01-24 20:13:21 +07:00