Files
tls-pq-bench/docs/TODO.md
2026-01-25 15:57:47 +02:00

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 N bytes deterministic payload

Client (proto=raw)

  • Connect TLS
  • Send N
  • Read exactly N bytes

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_rs for 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 = n bytes deterministic payload
  • Ensure keep-alive behavior is controlled (prefer 1 request per connection)

Client (proto=http1)

  • GET /bytes/n and 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 raw is used for microbench