diff options
| author | eunhhu <[email protected]> | 2026-09-28 19:30:44 +0100 |
|---|---|---|
| committer | eunhhu <[email protected]> | 2026-09-28 19:30:44 +0100 |
| commit | a83d663404e030a8734fddc8827fb4afe309a1b9 (patch) | |
| tree | d94c2eb3c63cddd5418e8ffeb1896747abc4ac96 /prototypes/workbench/native | |
| parent | 09b754f2490dec5582ba79c9cde55b32bac12bcf (diff) | |
| download | pure-a83d663404e030a8734fddc8827fb4afe309a1b9.tar.gz pure-a83d663404e030a8734fddc8827fb4afe309a1b9.zip | |
Keep a run's keys as bytes: one AES-GCM context serves the listener
Each run a listener knew held two OpenSSL contexts. With 16 KiB pages,
what those allocations left behind when idle senders went kept 42 MB of
free heap resident after 10,000 senders had come and gone (in use: 0.6
MB). A run now keeps its keys (16 bytes each way and the nonce bases),
and the listener seals and opens with one context, giving it each
packet's key: about 130 ns a packet on this Pi. Two runs a sender, not
four; a sender's address as an IPv6 one (an IPv4 one fits). What idle
senders held goes back to the system once 1,024 have gone, or 10 s after
any went (malloc_trim). HKDF is fetched once, not at every derivation.
Diffstat (limited to 'prototypes/workbench/native')
0 files changed, 0 insertions, 0 deletions
