neqo/neqo-transport/src
Lars Eggert 673d44df15
feat: Shuffle the client Initial crypto data (#2228)
* feat: Mix up the Initial crypto data a bit

Look for ranges of `N` or more bytes of graphical ASCII data in `data`.
Create at least one split point for each range, multiple ones each `N`
bytes if the range is long enough. Create data chunks based on those
split points. Shuffle the chunks and return them.

CC @martinthomson @dennisjackson

* Fix tests

* Fixes

* Doc fixes

* More tests and corner-case fixes

* Footgun prevention

* WIP; suggestions from @martinthomson

* Address more code review comments

* Refactor loop

* More from @martinthomson

* Again

* Create roughly five chunks per packet

* Latest suggestion from @martinthomson

* Simpler version from @martinthomson

* Fix

* Update neqo-transport/src/crypto.rs

Co-authored-by: Martin Thomson <mt@lowentropy.net>
Signed-off-by: Lars Eggert <lars@eggert.org>

* Use `Decoder`

* Minimize diff

* Fix comment

* Update neqo-transport/src/crypto.rs

Co-authored-by: Martin Thomson <mt@lowentropy.net>
Signed-off-by: Lars Eggert <lars@eggert.org>

* Final suggestions

---------

Signed-off-by: Lars Eggert <lars@eggert.org>
Co-authored-by: Martin Thomson <mt@lowentropy.net>
2024-11-29 07:21:32 +00:00
..
cc refactor(transport): reuse `now` in qlog wherever available (#2216) 2024-11-14 16:18:24 +02:00
connection feat: Shuffle the client Initial crypto data (#2228) 2024-11-29 07:21:32 +00:00
packet bench(transport/recovery): benchmark `SentPackets::take_ranges` (#2253) 2024-11-26 08:48:49 +00:00
recovery perf(transport/recovery): optimize `SentPackets::take_ranges` (#2245) 2024-11-26 11:41:53 +00:00
ackrate.rs chore: Turn on more clippy lints, and fix the warnings (#1956) 2024-07-04 05:50:45 +00:00
addr_valid.rs chore: Remove superfluous clippy allows (#1997) 2024-07-25 18:09:27 +03:00
cid.rs fix: More migration tests and related fixes (#2170) 2024-11-14 16:29:05 +02:00
crypto.rs feat: Shuffle the client Initial crypto data (#2228) 2024-11-29 07:21:32 +00:00
ecn.rs fix: Handle migrating to a path that is an ECN blackhole (#2081) 2024-09-02 10:44:59 +00:00
events.rs refactor: rename ConnectionError to CloseReason (#1872) 2024-05-03 08:03:45 +00:00
fc.rs fix: Check whether CIDs are empty (#2034) 2024-08-09 11:54:07 +00:00
frame.rs chore: Remove `test_` from test names (#2024) 2024-07-31 08:09:02 +00:00
lib.rs feat: Shuffle the client Initial crypto data (#2228) 2024-11-29 07:21:32 +00:00
pace.rs fix(transport): don't pace below timer granularity (#2035) 2024-08-06 10:50:21 +00:00
path.rs chore: Fix clippy `this map_or is redundant` (#2232) 2024-11-18 10:04:29 +00:00
pmtud.rs chore: Fix clippy `this map_or is redundant` (#2232) 2024-11-18 10:04:29 +00:00
qlog.rs refactor(transport): reuse `now` in qlog wherever available (#2216) 2024-11-14 16:18:24 +02:00
quic_datagrams.rs perf(transport): have add_datagram take Vec<u8> (#2120) 2024-09-18 13:26:31 +03:00
recv_stream.rs chore: Fix clippy `this map_or is redundant` (#2232) 2024-11-18 10:04:29 +00:00
rtt.rs refactor(transport): reuse `now` in qlog wherever available (#2216) 2024-11-14 16:18:24 +02:00
send_stream.rs chore: Fix clippy `this map_or is redundant` (#2232) 2024-11-18 10:04:29 +00:00
sender.rs refactor(transport): reuse `now` in qlog wherever available (#2216) 2024-11-14 16:18:24 +02:00
server.rs refactor(transport): reuse `now` in qlog wherever available (#2216) 2024-11-14 16:18:24 +02:00
shuffle.rs feat: Shuffle the client Initial crypto data (#2228) 2024-11-29 07:21:32 +00:00
stats.rs feat: Remove `FrameStats::all` (#2104) 2024-09-13 12:48:50 +00:00
stream_id.rs chore: Turn on more clippy lints, and fix the warnings (#1956) 2024-07-04 05:50:45 +00:00
streams.rs No need to borrow with a smarter borrow checker (#2238) 2024-11-19 06:55:26 +00:00
tparams.rs chore: Fix clippy `this map_or is redundant` (#2232) 2024-11-18 10:04:29 +00:00
tracking.rs chore: Fix clippy `this map_or is redundant` (#2232) 2024-11-18 10:04:29 +00:00
version.rs chore: Turn on more clippy lints, and fix the warnings (#1956) 2024-07-04 05:50:45 +00:00