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