feat(mesh): add MLS-Lite lightweight encryption for constrained links

MLS-Lite provides group encryption without full MLS overhead:
- Pre-shared group secret (QR code, NFC, or MLS epoch export)
- ChaCha20-Poly1305 symmetric encryption (same as MLS app messages)
- Per-message nonce from epoch + sequence
- Replay protection via sliding window
- Optional Ed25519 signatures

Wire overhead: ~41 bytes without signature, ~105 with signature
(vs ~174 bytes for MeshEnvelope V1)

Tradeoffs vs full MLS:
- No automatic post-compromise security (manual key rotation)
- No automatic forward secrecy (only per-epoch)
- Keys are pre-shared, not negotiated

Designed for SF12 LoRa where MLS KeyPackages are impractical.
This commit is contained in:
2026-03-30 23:48:25 +02:00
parent 9cbf824db6
commit a055706236
2 changed files with 551 additions and 0 deletions

View File

@@ -18,6 +18,7 @@ pub mod announce_protocol;
pub mod broadcast;
pub mod envelope;
pub mod envelope_v2;
pub mod mls_lite;
pub mod identity;
pub mod link;
pub mod mesh_router;