v0.0.13: Sender Keys for efficient group encryption

Protocol (sender_keys.rs):
- SenderKey: symmetric key with chain ratchet (forward secrecy per chain)
- generate(), rotate(), encrypt(), decrypt()
- SenderKeyDistribution: share key via 1:1 encrypted channel
- SenderKeyMessage: encrypted group message (O(1) instead of O(N))
- Chain key ratchets forward on each message (HKDF)
- Generation counter for key rotation tracking
- 4 tests: basic, multi-message, rotation, old-key rejection

WireMessage:
- GroupSenderKey variant: encrypted group message
- SenderKeyDistribution variant: key sharing

Server: dedup handles new variants.
CLI TUI + recv: stub handlers for new message types.
23/23 protocol tests pass.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Siavash Sameni
2026-03-27 13:23:10 +04:00
parent 653c6c050b
commit 86da52acc4
9 changed files with 280 additions and 6 deletions

10
warzone/Cargo.lock generated
View File

@@ -2647,7 +2647,7 @@ dependencies = [
[[package]]
name = "warzone-client"
version = "0.0.11"
version = "0.0.12"
dependencies = [
"anyhow",
"argon2",
@@ -2680,7 +2680,7 @@ dependencies = [
[[package]]
name = "warzone-mule"
version = "0.0.11"
version = "0.0.12"
dependencies = [
"anyhow",
"clap",
@@ -2689,7 +2689,7 @@ dependencies = [
[[package]]
name = "warzone-protocol"
version = "0.0.11"
version = "0.0.12"
dependencies = [
"base64",
"bincode",
@@ -2712,7 +2712,7 @@ dependencies = [
[[package]]
name = "warzone-server"
version = "0.0.11"
version = "0.0.12"
dependencies = [
"anyhow",
"axum",
@@ -2739,7 +2739,7 @@ dependencies = [
[[package]]
name = "warzone-wasm"
version = "0.0.11"
version = "0.0.12"
dependencies = [
"base64",
"bincode",