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
Marten Seemann
3446946217
add a unit test using the test vector from the draft
2020-01-24 10:20:23 +07:00
Marten Seemann
52f9811046
update Retry key and nonce to the values used in draft-25
2020-01-22 10:51:32 +07:00
Marten Seemann
6f347233e2
update the name of the disable_active_migration transport parameter
2020-01-21 15:05:12 +07:00
Marten Seemann
5a566f2176
Merge pull request #2226 from lucas-clemente/retry-integrity
...
implement the retry integrity tag
2020-01-17 17:19:15 +07:00
Marten Seemann
3e469db631
protect the AEAD calculating the integrity tag by a mutex
2020-01-17 14:01:12 +07:00
Marten Seemann
9ea9c7947f
implement calculation of the retry integrity tag
2020-01-17 13:42:57 +07:00
Marten Seemann
080b61d271
only save transport parameters to session ticket when using 0-RTT
2020-01-17 10:50:27 +07:00
Marten Seemann
4ab4b8004a
Merge pull request #2274 from lucas-clemente/log-0-rtt-key-install
...
log when 0-RTT keys become available
2020-01-06 17:43:14 +07:00
Marten Seemann
a1840b3221
fix unmarshaling of transport parameters from session tickets
2020-01-02 15:12:32 +08:00
Marten Seemann
81831049c9
log when 0-RTT keys become available
2020-01-02 15:10:43 +08:00
Marten Seemann
052508e8c2
add a version to marshaled transport parameters in the session ticket
2020-01-01 18:04:02 +04:00
Marten Seemann
22abcfe6fb
drop 0-RTT write keys when receiving the 1-RTT keys
2020-01-01 18:04:02 +04:00
Marten Seemann
44aa12850e
restore the server's transport parameters from the session ticket
2020-01-01 18:04:02 +04:00