mirror of
https://github.com/Runnin4ik/dpi-detector.git
synced 2026-10-19 09:23:17 +00:00
`net/quic.rs` builds the hello for QUIC: the header protection, the `CRYPTO` stream and the RFC 9001 §5.2 keys; `probe/quic.rs` is the column, and `probe/quic_quinn.rs` runs the same column through `quinn` (feature `quinn-probe`, off by default — not a shipping candidate, as `Cargo.toml` says). The shapes needed two things for it: `Variant::NoGrease`, because a browser greases over TCP and not over QUIC (measured on a live Chrome's QUIC hello), and `sends_extension`/`extension_body`, so an edit starts from the shape's own bytes and a shape that does not send an extension does not get one. The vendored hook gains `ClientHelloProfile::quic`: a QUIC hello's `legacy_session_id` is empty (RFC 9001 §8.4), which the patched hook could not reach from the connection's protocol alone. `scripts/quic/` is the stand that validates the column against aioquic; `tools/quinn-stand/` is the out-of-workspace second one, and `capture-run.ps1` captures the column's traffic for a look at the wire. |
||
|---|---|---|
| .. | ||
| dpi-core | ||
| dpi-detector | ||