Marten Seemann
3e65cfd9c0
Merge pull request #2074 from lucas-clemente/invalid-ack-delays
...
gracefully handle invalid ACK delay values when parsing ACK frames
2019-08-19 11:30:34 +07:00
Marten Seemann
295533595a
Merge pull request #2073 from lucas-clemente/conn-close-frame-frame-type
...
parse and write the frame type field in the CONNECTION_CLOSE frame
2019-08-18 20:16:22 +07:00
Marten Seemann
f0bdf4f982
gracefully handle invalid ACK delay values when parsing ACK frames
2019-08-17 12:42:10 +07:00
Marten Seemann
96f0e96e45
parse and write the frame type field in the CONNECTION_CLOSE frame
2019-08-17 11:19:39 +07:00
Marten Seemann
6bcd740f56
reject NEW_CONNECTION_ID frames with invalid Retire Prior To values
2019-08-17 11:07:38 +07:00
Marten Seemann
bb4cfe29cb
fix connection ID length check in the NEW_CONNECTION_ID frame
2019-08-17 10:58:40 +07:00
Marten Seemann
1a9b568177
implement packet-threshhold based loss detection
2019-08-13 08:35:48 +07:00
Marten Seemann
94a760ecff
refactor DetectLostPackets to match the draft
2019-08-13 08:35:48 +07:00
Marten Seemann
264eaf2a7b
Merge pull request #2051 from lucas-clemente/aead-open-rcv-time
...
pass the time a packet was received to the short header opener
2019-08-12 21:06:39 -04:00
Marten Seemann
bceefa2f70
Merge pull request #2049 from lucas-clemente/fix-initial-pto
...
fix initial PTO timer duration
2019-08-12 21:05:54 -04: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
5189cb94f1
fix initial PTO timer duration
2019-08-10 17:21:31 +07:00
Marten Seemann
0e4b25958f
use early retransmit for crypto packets
2019-08-08 15:47:51 +07:00
Marten Seemann
ee00cbe088
Merge pull request #2033 from tatianab/injection-attacks
...
Successful early-handshake injection attacks
2019-08-08 00:05:43 -04:00
Marten Seemann
d5585628d8
remove unneeded return value of ReceivedPacketHandler.ReceivedPacket()
2019-08-05 06:55:26 +07:00
Marten Seemann
475ba63164
never keep track of more than 500 ACK ranges
...
This is achieved by deleting the oldest ACK ranges when receiving a
packet that creates a new ACK range such that this limit is exceeded.
2019-08-05 06:55:22 +07:00
Marten Seemann
320d4a868e
Merge pull request #2030 from lucas-clemente/merge-crypto-timer-and-pto
...
merge crypto and PTO timeout
2019-08-04 19:48:25 -04: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
Tatiana Bradley
361fd2d2b2
addressed reviewer comments
2019-08-02 22:44:44 +00:00
Tatiana Bradley
e859b12ad4
added successful pre-handshake injection attacks
2019-08-02 21:52:20 +00:00
Marten Seemann
792983dec6
merge crypto and PTO timeout
2019-07-31 07:59:12 +07:00
Marten Seemann
db645f3336
Merge pull request #2021 from lucas-clemente/early-retransmit-for-crypto-packets
...
use early retransmit for crypto packets
2019-07-31 05:44:10 +07:00
Marten Seemann
3b35e8e8bc
Merge pull request #2028 from lucas-clemente/ack-ranges
...
don't add ACK ranges for delayed packets, if history was already deleted
2019-07-31 05:29:12 +07:00
Marten Seemann
fb9fafe3b4
don't add ACK ranges for delayed packets, if history was already deleted
2019-07-30 11:19:16 +07:00
Marten Seemann
f4bb3c12be
remove unneeded tracking variable in the received packet history
...
The value was not updated correctly when receiving reordered packets.
Since it's trivial to determine it from the list of received packets,
the easiest fix is to remove it.
2019-07-30 11:17:26 +07:00
Marten Seemann
a0b7e468ff
optimize deleting of ACK ranges
2019-07-30 11:02:52 +07:00
Marten Seemann
91e57fe6c9
use early retransmit in every packet number space
2019-07-25 17:51:45 -04:00
Marten Seemann
f150ed4d4e
rename sentPacketHandler functions to match the recovery draft
2019-07-25 17:10:47 -04:00
Marten Seemann
f7eb13fff1
disable the two-connection mode of the congestion controller
2019-07-25 16:34:44 -04:00
Marten Seemann
649f3b42b3
update the initial salt for draft-22
2019-07-16 18:08:36 +07:00
Marten Seemann
879467b3c5
Merge pull request #1997 from lucas-clemente/new-header-format
...
implement the new header format
2019-07-16 15:00:18 +07:00
Marten Seemann
dc33db1c18
implement the new header format
2019-07-09 13:04:40 +07:00
Marten Seemann
91961c8c6f
add the Retire Prior To field to the NEW_CONNECTION_ID frame
2019-07-08 12:53:45 +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
5929a83210
Merge pull request #1974 from lucas-clemente/drop-old-keys
...
drop keys 3 PTOs after a key update
2019-06-30 17:51:28 +07:00
Marten Seemann
5104c5d554
Merge pull request #1972 from lucas-clemente/frame-enc-level-check
...
check if a frame is allowed at the encryption level it was sent with
2019-06-30 17:36:33 +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
7ba70cc8c2
Merge pull request #1973 from lucas-clemente/pto-rtt-stats
...
move calculation of the PTO to the RTTStats
2019-06-30 17:33:28 +07:00
Marten Seemann
7b9b711a77
fix timing side channel when reading headers with invalid reserved bits
2019-06-30 15:57:03 +07:00
Marten Seemann
66abcdfc5c
move calculation of the PTO to the rttStats
...
The PTO value is needed at various places in the protocol. Calculating
it on the rttStats struct will allow us to pass around this struct.
2019-06-29 14:57:24 +07:00
Marten Seemann
4366eac105
don't include the exponential backoff in the PTO calculation
...
According to the spec, the PTO is defined without the backoff. The
backoff is applied when setting the PTO alarm.
2019-06-29 14:02:05 +07:00
Marten Seemann
b5764f22a2
save the max_ack_delay in the rttStats
2019-06-29 13:40:56 +07:00
Marten Seemann
299da56aef
check if a frame is allowed at the encryption level it was sent with
2019-06-29 12:32:19 +07:00
Marten Seemann
4fe0f6752c
fix typos in error messages when parsing Version Negotiation packets
2019-06-29 11:00:57 +07:00