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>
This commit is contained in:
10
warzone/Cargo.lock
generated
10
warzone/Cargo.lock
generated
@@ -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",
|
||||
|
||||
@@ -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"] }
|
||||
|
||||
Reference in New Issue
Block a user