MeshCore Encryption Overview
This page summarizes MeshCore's encryption as verified from the official source code. The key facts: AES-128 symmetric encryption, ECDH key exchange using Ed25519 keys transposed to X25519, and a 2-byte truncated MAC (derived from HMAC-SHA256SHA256) for message authentication.
Verified Encryption Summary
| Component | Algorithm | Notes |
|---|---|---|
| Symmetric cipher | AES-128 ECB | 16-byte |
| Message authentication | ||
| Key exchange | ECDH via X25519 | Ed25519 keys converted to X25519 for |
| Identity keys | Ed25519 | 32-byte public key, 64-byte private key |
| Advertisement signing | Ed25519 signature | Prevents node identity spoofing |
Security Caveats
8b3387e9c5cdea6ac9e5edbaa115cd72). Traffic on the public channel is readable by anyone; it is not private or secure against observers.
Common Misconceptions
- Not AES-256: MeshCore uses AES-128, not AES-256.
BothKey length (128-bit) is adequate; the real cryptographic limitations of MeshCore areconsideredthesecureECBforcipherthismodeapplication;and thechoice2-byteof(16-bit)128-bittruncatedkeysMACkeepsdescribedpacketinoverheadtheminimal.Security Caveats above — not the key size. - Not CTR mode: The implementation uses ECB mode with zero-padding, not CTR or GCM mode.
- The official MeshCore website states "AES-128 encryption" - this matches the source code.
Source: Official MeshCore repository source code. Verified 2026-05-03.