mirror of
https://github.com/kristoferssolo/tls-pq-bench.git
synced 2026-03-21 16:26:22 +00:00
1.5 KiB
1.5 KiB
TODO (implementation plan)
Milestone 1 -- Minimal client/server (raw protocol) [MUST]
Server (proto=raw)
- TLS acceptor (rustls)
- Read 8-byte length
N - Send
Nbytes deterministic payload
Client (proto=raw)
- Connect TLS
- Send
N - Read exactly
Nbytes
Milestone 2 -- Measurement instrumentation [MUST]
- T0 before connect
- T_hs_done after handshake completion
- T_last after last byte read
- Output NDJSON
Milestone 3 -- KX selection (X25519 vs X25519MLKEM768) [MUST]
- rustls provider wiring (
aws_lc_rsfor PQ) - negotiated group logging (debug mode)
Milestone 4 -- Concurrency & runner [MUST]
- tokio-based runner
- concurrency control and warmup
- matrix runner over (mode, payload, concurrency)
Milestone 5 -- HTTP/1.1 mode (hyper) [OPTIONAL]
Server (proto=http1)
- Implement HTTP routes:
GET /bytes/{n}
- Response body =
nbytes deterministic payload - Ensure keep-alive behavior is controlled (prefer 1 request per connection)
Client (proto=http1)
GET /bytes/nand read full body- TTLB measured to last byte of body
- Keep behavior comparable with raw mode:
- 1 request per new TLS connection (for now)
Milestone 6 -- Compare raw vs http1 [OPTIONAL]
- Run a small matrix:
- payload: 1 KB, 100 KB, 1 MB
- concurrency: 1, 10
- Document overhead differences and why
rawis used for microbench