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
Marten Seemann
a2a4a216de
introduce an absolute key phase, use it for key updates
2019-06-30 17:36:09 +07:00
Marten Seemann
5a9c593463
rename the KeyPhase to KeyPhaseBit
2019-06-30 17:36:09 +07:00
Marten Seemann
0333f424bb
Merge pull request #1959 from lucas-clemente/optimize-crypto-packet-sending
...
optimize sending of crypto packets
2019-06-29 00:03:12 +08:00
Marten Seemann
0f16e08e14
introduce an environment variable to set the key update interval
...
QUIC_GO_KEY_UPDATE_INTERVAL determines the maximum number of packets
that are sent or received using a key. The default value should be safe
for use in production, but setting it to a lower value is useful for
integration and interop testing.
2019-06-27 10:54:58 +08:00
Marten Seemann
a09c045324
initiate a key update after sending / receiving 100000 packets
2019-06-27 10:54:54 +08:00
Marten Seemann
73d5d83a1d
pass the largest acked 1-RTT packet number to the crypto setup
2019-06-27 07:42:19 +08:00
Marten Seemann
acba7d4e77
return ErrKeysDropped when sealer keys were already dropped
2019-06-25 13:38:11 +08:00
Marten Seemann
4e1f18e833
avoid unnecessary initializations of heaper protectors on key updates
2019-06-22 20:01:18 +08:00
Marten Seemann
ca8b7ddeef
add logging to the updatable AEAD
2019-06-22 20:01:18 +08:00
Marten Seemann
55b88be009
check that the peer doesn't update keys too quickly
2019-06-22 20:01:18 +08:00
Marten Seemann
1ef54db63f
check that the peer starts with key phase 0 after the handshake
2019-06-22 20:01:18 +08:00
Marten Seemann
c522bcc683
return a defined error when the AEAD cannot open a packet
2019-06-22 20:01:18 +08:00
Marten Seemann
1fb970cbac
perform a key update when receiving a packet with a different key phase
2019-06-22 20:01:18 +08:00
Marten Seemann
e74ede678f
move opening / sealing to the updatable AEAD
2019-06-22 20:01:18 +08:00
Marten Seemann
305e37cd15
move header encryption / decryption to the updatable AEAD
2019-06-22 20:01:18 +08:00
Marten Seemann
d3ca8db521
refactor initialization of AEADs
2019-06-22 20:01:18 +08:00
Marten Seemann
0dd5a0b91f
introduce a separate AEAD for short header crypto
2019-06-22 20:01:18 +08:00
Marten Seemann
598628d05b
use separate opener interfaces for long and short header packets
2019-06-22 20:01:18 +08:00
Marten Seemann
b2d3ef691e
use separate sealer interfaces for long and short header packets
2019-06-22 20:01:18 +08:00
Marten Seemann
c503769bcd
use separate functions per encryption level to get sealers
2019-06-22 20:01:18 +08:00
Marten Seemann
d4d3f09ee3
use separate functions per encryption level to get openers
2019-06-22 20:01:18 +08:00