Commit Graph

213 Commits

Author SHA1 Message Date
Marten Seemann
7b10453af8 implement the Retry integrity tag 2020-01-17 13:42:57 +07:00
Marten Seemann
b0c08b1bd0 implement rules for frame types in 0-RTT packets 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
be59be9ef1 use the parsed header length when unpacking packets 2019-12-09 15:42:37 +08:00
Marten Seemann
490d9ddab2 refactor parsing of headers with invalid reserved bits 2019-12-09 14:57:19 +08:00
Marten Seemann
556e5c5559 implement parsing and writing of the HANDSHAKE_DONE frame 2019-12-06 10:29:48 +07:00
Marten Seemann
78029adfb2 improve logging of undecryptable packets 2019-11-25 14:06:44 +07:00
Marten Seemann
8e7a462007 fix encoding of the error code in the STOP_SENDING frame 2019-11-16 15:03:19 +08:00
Marten Seemann
dbdccfa70a include the frame type in the error returned by the frame parser 2019-11-09 11:39:35 +07:00
Marten Seemann
5d54a11e04 add an overflow check to the STREAMS_BLOCKED frame parser 2019-11-08 11:50:22 +07:00
Marten Seemann
1e7c7842b9 move overflow check in MAX_STREAMS frame to frame parser 2019-11-08 11:44:56 +07:00
Marten Seemann
d91da7401b allow PING frames at every encryption level 2019-10-15 10:17:02 -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
07ee05b5a9 Merge pull request #2136 from lucas-clemente/empty-new-tokens
reject NEW_TOKEN frames with empty tokens
2019-09-17 08:06:47 +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
2ea8b70ffb reject NEW_TOKEN frames with empty tokens 2019-09-13 11:00:06 +07:00
Marten Seemann
4cfbb2f134 use STREAM frames from the buffer for sending data 2019-09-07 16:31:52 +07:00
Marten Seemann
5ea33cd31e implement a buffer pool for STREAM frames 2019-09-04 16:55:30 +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
515c21dd1d simplify splitting of STREAM frames 2019-08-29 11:15:59 +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
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
ccb197939d replace WriteUintN and ReadUintN by explicit functions 2019-08-20 15:59:39 +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
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
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
5a9c593463 rename the KeyPhase to KeyPhaseBit 2019-06-30 17:36:09 +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
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
Marten Seemann
14a31d49a0 add a type for the key phase and use it for header parsing and writing 2019-06-22 20:01:18 +08:00
Marten Seemann
147181786a use a varint for the error code in the RESET_STREAM frame 2019-06-14 17:38:27 +08:00
Marten Seemann
453aa23553 use a varint for the error code in the CONNECTION_CLOSE frame 2019-06-14 17:35:40 +08:00
Marten Seemann
a8633a952c introduce a type for the stream number 2019-06-05 17:45:17 +08:00
Marten Seemann
82acc7f2b7 introduce invalid stream ID to simplify the outgoing streams map 2019-05-30 03:16:45 +08:00
Marten Seemann
8c40c3f768 improve logging of STREAMS_BLOCKED frames 2019-05-28 15:56:02 +02:00
Marten Seemann
c8aa4f4d4a improve logging of MAX_STREAMS frames 2019-05-28 15:54:25 +02:00
Marten Seemann
352ac45e32 set the QUIC bit in Version Negotiation packets 2019-03-29 09:20:41 +01:00
Marten Seemann
662041649f use the error names from the draft 2019-03-06 13:45:05 +09:00