mirror of
https://github.com/jmcorgan/fips.git
synced 2026-08-02 12:56:15 +00:00
The admission-cap suite asserted IK wire sizes (inbound Msg1 len 84, outbound Msg2 len 104) to verify the inbound max_peers cap. On the XX handshake those sizes differ and Msg2 is always sent before identity is known, so the IK discriminator matched nothing and the suite failed despite the cap working correctly. Replace the wire-size discriminator with a protocol-agnostic cap-holds invariant: each denied peer must keep re-initiating handshakes (sustained inbound, size-agnostic), no denied peer may be promoted to an active session, the node must log cap-enforcement events, and the capped node must hold exactly max_peers. Raise node-c's handshake logging to debug in the mesh profile so the early-gate drop is visible alongside the late-check rejection. Also record in the changelog that for peers the node also dials, the cap is enforced by the retained late check rather than the early msg3 drop.