WireGuard starts with public/private keypairs to authenticate the connection, but negotiates a shared key to use for its more efficient ChaCha20 symmetric encryption. That's what its initial request/response are doing, before exchanging forwarded network packets!
How WireGuard registers those public/private keys is out of scope of the writeups I'm following. So: How'd you do it?
Today I'm discussing how I'd implement ECDH Curve 25519 on my hypothetical hardware-communicator for WireGuard.
1/4