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
Marten Seemann
1f8a47af02
implement a ClientSessionCache that can save application data
2020-01-01 18:04:02 +04:00
Marten Seemann
9b0a4a8813
move unmarshaling of the transport parameters to the crypto setup
2020-01-01 18:04:01 +04:00
Marten Seemann
c5f74595ca
receive 0-RTT sealers and openers from qtls when using 0-RTT
2019-12-30 18:39:21 +04:00
Marten Seemann
a9f4195fd0
check that transport params didn't change when accepting
2019-12-30 18:39:21 +04:00
Marten Seemann
ed0f426943
implement marshalling of transport parameters for the session ticket
...
When using 0-RTT, the client will reuse the transport parameters from
the last session. The server therefore needs to make sure that the
transport parameters haven't been changed in the mean time. To do so, it
encodes the transport parameters into the session ticket.
2019-12-30 18:39:21 +04:00
Marten Seemann
0b65a0c75e
don't drop Handshake keys when receiving an ACK for a 0-RTT packet
2019-12-30 18:39:21 +04:00
Marten Seemann
355156ac4e
Merge pull request #2225 from lucas-clemente/handshake-done
...
implement the HANDSHAKE_DONE mechanism
2019-12-18 10:07:43 +04:00
Marten Seemann
27549c5665
use the minimum of the two peers' max_idle_timeouts
2019-12-11 14:04:33 +04:00
Marten Seemann
12922bdec9
drop Handshake keys when receiving HANDSHAKE_DONE (as a client)
2019-12-06 10:29:48 +07:00
Marten Seemann
f7fd5d2848
drop Handshake keys as soon as the handshake completes (as a server)
2019-12-06 10:29:48 +07:00
Marten Seemann
d771650640
implement marshaling and unmarshaling of the preferred_address
2019-11-30 19:56:05 +07:00
Marten Seemann
7fbf5397df
fix activeConnectionIDLimitParameterID variable name
2019-11-27 13:17:05 +07:00
Marten Seemann
d0a3eaa8a3
improve logging of handshake messages
2019-11-25 09:09:34 +07:00
Marten Seemann
92b898e811
Merge pull request #2218 from lucas-clemente/pto-per-pn-space
...
change PTO to be per packet number space
2019-11-22 18:35:05 +08:00
Marten Seemann
d6add122d8
update the label used for the key update derivation
2019-11-16 17:51:35 +08:00
Marten Seemann
3db60534cf
use a sentinel error when a sealer is not yet available
2019-11-12 11:27:30 +07:00
Marten Seemann
d00828b762
make it possible to get the PTO with and without max_ack_delay
2019-11-12 11:27:30 +07:00
Marten Seemann
37600e049d
implement the active_connection_id_limit transport parameter
2019-11-05 10:59:21 +07:00
Marten Seemann
f61f251fce
implement correct dropping of Initial keys
2019-11-04 13:33:17 +07:00
Marten Seemann
cc9fa055a6
rename the sealer to longHeaderSealer for consistency
2019-11-04 11:31:20 +07:00
Marten Seemann
416fe8364e
remove unused return value from session constructor
2019-10-27 15:35:34 +07:00
Marten Seemann
4834159210
use the TRANSPORT_PARAMETER_ERROR
2019-10-25 06:47:26 +07:00
Marten Seemann
efe65b5491
fix putting of a nil ClientSessionState into a qtls.ClientSessionCache
2019-10-13 05:09:59 -07:00
Marten Seemann
6b22f36d82
add the stylecheck linter
2019-09-17 13:50:19 +07:00
Marten Seemann
ab2b26a5cb
add the unparam linter
2019-09-17 13:44:05 +07:00
Marten Seemann
57a9ed3379
Merge pull request #2134 from lucas-clemente/draft-23-test-vectors
...
update the Initial salt to draft-23
2019-09-17 08:06:33 +07:00
Marten Seemann
807dd67927
improve memory alignment of frequently used structs
2019-09-13 13:37:41 +07:00
Marten Seemann
1d6359543d
update the Initial salt to draft-23
2019-09-12 10:06:36 +07:00
Marten Seemann
de3e1a3de5
log the cipher suite
2019-09-07 11:47:21 +07:00
Marten Seemann
fa89ec345a
add support for ChaCha20 header protection
2019-09-07 11:36:50 +07:00
Marten Seemann
33b74fca79
use the new qtls SetWriteKey and SetReadKey interface
2019-09-07 11:36:06 +07:00
Marten Seemann
63c079e234
move header protection to a separate struct
2019-09-07 11:32:48 +07:00
Marten Seemann
d689f9a392
Merge pull request #2098 from lucas-clemente/fix-crypto-setup-close-deadlock
...
fix deadlock when the crypto setup is closed while qtls writes messages
2019-09-01 11:17:42 +07:00
Marten Seemann
e224768e46
fix deadlock when the crypto setup is closed while qtls writes messages
2019-08-31 11:59:44 +07:00
Marten Seemann
2329d0e21e
handle negative max_ack_delay values in the transport parameters
2019-08-25 16:15:34 +07:00
Marten Seemann
fcc34357dc
Merge pull request #2078 from lucas-clemente/speed-up-header-encryption
...
speed up header encryption / decryption
2019-08-24 08:28:19 +07:00
Marten Seemann
fd62eb67ee
speed up updatableAEAD.Overhead()
2019-08-20 13:47:36 +07:00
Marten Seemann
a57b9c70aa
speed up header encryption / decryption
2019-08-20 13:36:40 +07:00
Marten Seemann
481cf25910
grease transport parameters
2019-08-19 13:56:26 +07:00
Marten Seemann
bb48c9b31a
pass the time a packet was received to the short header opener
...
This saves us one time.Now() syscall per received 1-RTT packet.
2019-08-11 13:33:02 +07:00
Marten Seemann
382094ba68
add unit tests for session resumption
2019-08-03 16:54:58 +07:00
Marten Seemann
511acf1371
use a GoMock ClientSessionCache in the handshake tests
2019-08-03 15:29:01 +07:00
Marten Seemann
649f3b42b3
update the initial salt for draft-22
2019-07-16 18:08:36 +07:00
Marten Seemann
c52a28cec1
explicitly trigger sending of session tickets
2019-07-05 20:53:25 +07:00
Marten Seemann
57c9b63ec9
Merge pull request #1991 from lucas-clemente/receive-encryption-level-on-key-change
...
receive the encryption level for key updates from qtls
2019-07-05 20:49:24 +07:00
Marten Seemann
6bf42558f3
receive the encryption level for key updates from qtls
2019-07-05 10:36:53 +07:00
Marten Seemann
2ab01f14cf
fix flaky key drop test on AppVeyor
2019-07-02 13:21:51 +07:00
Marten Seemann
a3878d99c9
drop old keys 3 PTOs after a key update
2019-06-30 17:36:09 +07:00