Commit Graph

811 Commits

Author SHA1 Message Date
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
717e6d5c96 implement serving multiple connections at the same time 2019-09-05 13:10:26 +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
bcac555574 Merge pull request #2096 from lucas-clemente/stream-retransmissions
handle retransmissions for STREAM frames at each stream
2019-08-31 17:59:19 +07:00
Marten Seemann
3550aea322 Merge pull request #2099 from lucas-clemente/stateless-reset-size
rework stateless reset size
2019-08-31 17:40:09 +07:00
Marten Seemann
3525a51ada add an OnAcked callback to ackhandler.Frames 2019-08-31 17:34:54 +07:00
Marten Seemann
e622207822 assemble ackhandler.Frames, not wire.Frames, when packing a packet 2019-08-31 17:34:54 +07:00
Marten Seemann
dd6e8a7424 Merge pull request #2095 from lucas-clemente/frame-retransmisions
retransmit frames, not packets
2019-08-31 17:34:10 +07:00
Marten Seemann
b8c89bc905 Merge pull request #2092 from lucas-clemente/max-ack-delay-overflow
handle negative max_ack_delay values in the transport parameters
2019-08-31 17:13:40 +07:00
Marten Seemann
0063b1e945 Merge pull request #2061 from lucas-clemente/fix-ack-delay-with-non-monotonic-clock
make sure that the ACK delay time is always a positive value
2019-08-31 17:10:28 +07:00
Marten Seemann
d02fd5178a adjust the minimum size for stateless resets to the new header format 2019-08-31 12:33:53 +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
1d392b4276 retransmit frames instead of packets 2019-08-29 15:00:10 +07:00
Marten Seemann
515c21dd1d simplify splitting of STREAM frames 2019-08-29 11:15:59 +07:00
Marten Seemann
5fa38a83fa remove tracking of which packet is retransmission of which other packet 2019-08-26 14:38:37 +07:00
Marten Seemann
a3d6f08074 move the ackhandler.Packet to the ackhandler interface file 2019-08-26 09:55:42 +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
d77368af36 Merge pull request #2083 from lucas-clemente/simplify-largest-acked-tracking
simplify ackhandler.Packet
2019-08-24 08:29:05 +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
53b32337df Merge pull request #2079 from lucas-clemente/speed-up-aead-overhead
speed up updatableAEAD.Overhead()
2019-08-23 23:19:59 +07:00
Marten Seemann
f7035b7b6a Merge pull request #2077 from lucas-clemente/speed-up-is-ack-eliciting
simplify (and speed up) IsFrameAckEliciting
2019-08-23 23:00:28 +07:00
Marten Seemann
c41b68033c Merge pull request #2080 from lucas-clemente/inline-varintlen
make sure that VarIntLen can be inlined
2019-08-23 22:59:51 +07:00
Marten Seemann
6a7b9c6412 Merge pull request #2086 from lucas-clemente/fix-conn-close-length
fix length calculcation for CONNECTION_CLOSE frames
2019-08-23 22:05:52 +07:00
Marten Seemann
0dbfefc1f6 fix length calculcation for CONNECTION_CLOSE frames 2019-08-22 12:20:13 +07:00
Marten Seemann
0c85e0eab9 remove unused PacketType field from the ackhandler.Packet 2019-08-21 14:49:00 +07:00
Marten Seemann
9221149194 simplify how the largest acked is passed to the ackhandler 2019-08-21 14:40:38 +07:00
Marten Seemann
ccb197939d replace WriteUintN and ReadUintN by explicit functions 2019-08-20 15:59:39 +07:00
Marten Seemann
f88546208d make sure that VarIntLen can be inlined 2019-08-20 14:18:50 +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
e16bf92dc6 simplify (and speed up) IsFrameAckEliciting 2019-08-20 13:18:32 +07:00
Marten Seemann
481cf25910 grease transport parameters 2019-08-19 13:56:26 +07:00
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
0b0eb2432a make sure that the ACK delay time is always a positive value
On systems without a monotonic clock, this value could become negative,
which would cause a uint underflow.
2019-08-14 16:43:55 +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