WireGuard
WireGuard is a communication protocol that implements VPN techniques to create secure, point-to-point connections in routed or bridged configurations.
WireGuard was created by Jason A. Donenfeld.
WireGuard is released under GPLv2.
OpenVPN and IPSec are complex, WireGuard aims to provide a simpler, faster and more modern alternative.
WireGuard utilizes Curve25519 for key exchange, ChaCha20 for encryption, and Poly1305 for data authentication, SipHash for hashtable keys, and BLAKE2s for hashing. It supports layer 3 for both IPv4 and IPv6 and can encapsulate v4-in-v6 and vice versa.