WireGuard's cryptography consists of IETF RFC7539 (ChaCha20 with Poly1305), Cuve25519 for Elliptic Curve-based Diffie Hellman handshakes, BLAKE2s (RFC7693), & HKDF (RFC5869) for deriving keys. It may also use SipHash24 for implementing hashtable, though I'm not sure that's relevant to external callers.
I'll describe these algorithms over the following days!
After exchanging some handshake UDP packets to establish encryption parameters, WireGuard exchanges encrypted IP packets over UDP.
2/4?