aboutsummaryrefslogtreecommitdiffstats
path: root/link/crypto.c
Commit message (Collapse)AuthorAgeFilesLines
* Deliver wires on the sending loop, a step at a time (017, 2b-2)eunhhu2026-10-011-0/+1
| | | | | | | | | | | | | A wire is now a sender of link/sending.h: its request goes on a non-blocking socket as far as the socket takes it (connect, TLS handshake, write, answer read), and its round waits for the socket or its deadline (10 s with nothing moved). The answer is read as it comes: the head whole, then a sized body counted down, a chunked one (few and small) parsed again as it grows, or a body to the close. The crypto table (version 6) takes the TLS handshake a step at a time, and reads and writes say what they wait for. The owner pushes a wire once a turn, as it does a link. A host whose app sends to ten links and ten wires has 5 threads where it had 24 (none: 3).
* Let links make an X25519 pair for once, and agree with iteunhhu2026-09-291-0/+10
| | | | | | | | An epoch's keys (docs/design/011-pure-transport.md): a pair made for the next epoch, held raw (a link may hold one for long and a node many, so not in OpenSSL's 16 KiB secure heap), and the secret its private half shares with the other side's public half, never all zeros. The crypto table's version is 5.
* Put the links and the crypto they use in link/, a part of their owneunhhu2026-09-291-0/+167
libpure-link.a holds them; pure-serve and the M5 harness link it instead of naming its source files.