The daemon does a single Noise-IK handshake at startup and never rekeys. The design calls for ~120 s session rotation (forward secrecy) and a drop-in path for a Rosenpass-style hybrid PQ handshake.
Scope
- Rekey scheduling in the daemon: run a fresh handshake mid-session (~every 120 s) and swap the
Session in DataPlane, with an overlap window so in-flight packets under the old epoch still decrypt (route by epoch). yip-crypto already provides the mechanism (a new handshake = a new Session); the daemon must drive the schedule + epoch handling.
- conn_tag rotation ties in here (currently static = a linkability signature; M6 carry-forward): rotate per epoch.
- PQ-hybrid handshake: the
psk modifier on NOISE_PARAMS is reserved but unexercised — wire Classic McEliece + ML-KEM feeding a PSK (Rosenpass model). Likely its own sub-task once classical rekey works.
Notes
The daemon does a single Noise-IK handshake at startup and never rekeys. The design calls for ~120 s session rotation (forward secrecy) and a drop-in path for a Rosenpass-style hybrid PQ handshake.
Scope
SessioninDataPlane, with an overlap window so in-flight packets under the old epoch still decrypt (route by epoch).yip-cryptoalready provides the mechanism (a new handshake = a newSession); the daemon must drive the schedule + epoch handling.pskmodifier onNOISE_PARAMSis reserved but unexercised — wire Classic McEliece + ML-KEM feeding a PSK (Rosenpass model). Likely its own sub-task once classical rekey works.Notes
yip-crypto+bin/yipd(tunnel/dataplane epoch handling). Sequence after io_uring Phase B (io_uring busy-poll Phase B: UringDriver (status + remaining work) #7).Sessionresets counters — the epoch must disambiguate).