Commit Graph

821 Commits

Author SHA1 Message Date
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
f15a82d3fd remove stray TODO in the ExtendedHeader 2019-09-13 13:10:13 +07:00
Marten Seemann
1d6359543d update the Initial salt to draft-23 2019-09-12 10:06:36 +07:00
Marten Seemann
fc962d1837 Merge pull request #2117 from lucas-clemente/send-pooled-stream-frames
use the STREAM frame buffer for receiving stream data
2019-09-08 10:23:46 +07:00
Marten Seemann
b083fd6f0e Merge pull request #2125 from lucas-clemente/chacha-header-protection
implement ChaCha20 header protection
2019-09-07 16:32:19 +07:00
Marten Seemann
4cb8bf3101 put STREAM frames back into the pool when they are acknowledged 2019-09-07 16:31:52 +07:00
Marten Seemann
4cfbb2f134 use STREAM frames from the buffer for sending data 2019-09-07 16:31:52 +07:00
Marten Seemann
039d7ae888 Merge pull request #2116 from lucas-clemente/stream-frame-pool
use a STREAM frame buffer for receiving stream data
2019-09-07 16:31:05 +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
717e6d5c96 implement serving multiple connections at the same time 2019-09-05 13:10:26 +07:00
Marten Seemann
5ea33cd31e implement a buffer pool for STREAM frames 2019-09-04 16:55:30 +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