aboutsummaryrefslogtreecommitdiffstats
path: root/.github/workflows
diff options
context:
space:
mode:
authoreunhhu <[email protected]>2026-09-29 13:57:58 +0100
committereunhhu <[email protected]>2026-09-29 13:58:06 +0100
commit9791a1e70979ee4ba832851912f0de20301343a8 (patch)
treef0d4aaccae616ba61d06ced5ffed2f1c85d218f5 /.github/workflows
parente680e67dc99c33cfaa3152613bddf3742263e385 (diff)
downloadpure-9791a1e70979ee4ba832851912f0de20301343a8.tar.gz
pure-9791a1e70979ee4ba832851912f0de20301343a8.zip
Move a link to a new epoch now and then, so keys that leak later open nothing past
A sender offers the public half of a pair made for the next epoch (OFFER) until the receiver accepts with a half of its own (ACCEPT); their X25519 and the epoch's secret make the next one's, and the private halves go. The header's low four bits say a packet's epoch; epoch 0 is the nodes' static secret, as the keys were. The first epoch is offered in the run's first packet (it begins with the first answer when the receiver is not busy), then one an hour or GiB. One who later has both nodes' keys opens only epoch 0, and no record went there after an epoch began: test-link tries every packet sent under the static keys, with epochs a second long, loss, reordering, restarts and replays. The receiver writes the epoch it accepted in its memo (a place is 256 bytes now), so it goes on without an X25519 when it starts again; one that forgot is not heard from, and its senders, after 2 s and four probes unanswered, offer again in epoch 0 with no records until an epoch begins. Keys of four epochs are tried (accepted, now, before, zero), as two may share the four bits. An accept costs an X25519 on each side, 220 µs on this Pi: one of a sender with records costs a token (256 a second, 8 at once) and the next packet offers again when there is none; one of a sender with nothing else to send waits for none, one a second for it. The X25519 is made after the turn's answers, never between a packet and its answer. serve's report and M2's generator count keys, X25519s and epochs.
Diffstat (limited to '.github/workflows')
0 files changed, 0 insertions, 0 deletions