mirror of
https://github.com/jmcorgan/fips.git
synced 2026-07-22 07:48:26 +00:00
d3477a7c0f94c73d22c7da46b7a270341c94153a
Session-layer encryption used an implicit nonce counter with no counter on the wire, requiring packets to arrive in exact order. Under bulk transfer load (e.g., SCP), UDP packet loss or reordering permanently desynchronized sender/receiver counters, causing all subsequent decryption to fail with no recovery. Add an 8-byte counter field to the DataPacket wire format and switch from implicit-counter decrypt() to decrypt_with_replay_check() which uses the explicit wire counter plus a 2048-packet sliding replay window — the same pattern already used at the link layer. Wire format: msg_type(1) + flags(1) + counter(8) + payload_len(2) = 12 bytes (was 4). FIPS_OVERHEAD updated 127 → 135 bytes accordingly.
FIPS Documentation
| Directory | Description |
|---|---|
| design/ | Protocol design specifications and analysis |
Languages
Rust
86.1%
Shell
10.4%
Python
3%
PowerShell
0.2%
Makefile
0.1%