1 Commits

Author SHA1 Message Date
Siavash Sameni
4a4fa9fab4 v0.0.21: FC-CRATE-1 — make warzone-protocol importable standalone
Replaced workspace dep inheritance with explicit versions in
warzone-protocol/Cargo.toml. The crate now builds both as a
workspace member AND standalone.

WZP can now import warzone-protocol directly:
  warzone-protocol = { path = "../featherChat/warzone/crates/warzone-protocol" }

This means WZP can delete its mirrored identity/crypto code and use:
- warzone_protocol::identity::{Seed, IdentityKeyPair, PublicIdentity}
- warzone_protocol::crypto::{hkdf_derive, aead_encrypt, aead_decrypt}
- warzone_protocol::ethereum::{derive_eth_identity, EthAddress}
- warzone_protocol::message::{WireMessage, CallSignalType}
- warzone_protocol::types::Fingerprint

Single source of truth for identity derivation — no more HKDF mismatches.

28/28 tests pass. Zero warnings.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 09:21:18 +04:00
2 changed files with 49 additions and 26 deletions

10
warzone/Cargo.lock generated
View File

@@ -2789,7 +2789,7 @@ dependencies = [
[[package]]
name = "warzone-client"
version = "0.0.20"
version = "0.0.21"
dependencies = [
"anyhow",
"argon2",
@@ -2822,7 +2822,7 @@ dependencies = [
[[package]]
name = "warzone-mule"
version = "0.0.20"
version = "0.0.21"
dependencies = [
"anyhow",
"clap",
@@ -2831,7 +2831,7 @@ dependencies = [
[[package]]
name = "warzone-protocol"
version = "0.0.20"
version = "0.0.21"
dependencies = [
"base64",
"bincode",
@@ -2856,7 +2856,7 @@ dependencies = [
[[package]]
name = "warzone-server"
version = "0.0.20"
version = "0.0.21"
dependencies = [
"anyhow",
"axum",
@@ -2883,7 +2883,7 @@ dependencies = [
[[package]]
name = "warzone-wasm"
version = "0.0.20"
version = "0.0.21"
dependencies = [
"base64",
"bincode",

View File

@@ -1,25 +1,48 @@
[package]
name = "warzone-protocol"
version.workspace = true
edition.workspace = true
version = "0.0.21"
edition = "2021"
license = "MIT"
description = "Core crypto & wire protocol for featherChat (Warzone messenger)"
rust-version = "1.75"
# This crate is designed to be importable standalone — no workspace inheritance.
# WarzonePhone and other projects can depend on it directly via path or git.
[dependencies]
ed25519-dalek.workspace = true
x25519-dalek.workspace = true
curve25519-dalek.workspace = true
chacha20poly1305.workspace = true
hkdf.workspace = true
sha2.workspace = true
rand.workspace = true
bip39.workspace = true
serde.workspace = true
serde_json.workspace = true
bincode.workspace = true
thiserror.workspace = true
hex.workspace = true
base64.workspace = true
uuid.workspace = true
zeroize.workspace = true
chrono.workspace = true
k256.workspace = true
tiny-keccak.workspace = true
# Crypto
ed25519-dalek = { version = "2", features = ["serde", "rand_core"] }
x25519-dalek = { version = "2", features = ["serde", "static_secrets"] }
curve25519-dalek = "4"
chacha20poly1305 = "0.10"
hkdf = "0.12"
sha2 = "0.10"
rand = "0.8"
# Ethereum compatibility
k256 = { version = "0.13", features = ["ecdsa", "serde"] }
tiny-keccak = { version = "2", features = ["keccak"] }
# BIP39
bip39 = "2"
# Serialization
serde = { version = "1", features = ["derive"] }
serde_json = "1"
bincode = "1"
# Error handling
thiserror = "2"
# Encoding
hex = "0.4"
base64 = "0.22"
# UUID
uuid = { version = "1", features = ["v4", "serde"] }
# Memory safety
zeroize = { version = "1", features = ["derive"] }
# Time
chrono = { version = "0.4", features = ["serde"] }