Zeolite: simple & secure communications based on libsodium with perfect forward secrecy, XChaCha20-Poly1305 and a mirrored protocol (no distinction between client & server).
The protocol is completely identical for server & client.
- Protocol version (currently
zeolite1
, so 8 bytes) - Public key (32 bytes)
- Ephemeral key (for PFS) signed with public key (96 bytes)
- Symmetric key (for communication) encrypted with ephemeral key (72 bytes)
- Stream header (24 bytes)
Total: 232 bytes
- Message size (4 bytes)
- Encrypted message (17 bytes + message size)
Total: 21 bytes + message size