Files
featherChat/warzone/crates/warzone-protocol/Cargo.toml
Siavash Sameni 661de47552 v0.0.14: Ethereum-compatible identity (secp256k1 + Keccak-256)
Protocol (ethereum.rs):
- derive_eth_identity(): HKDF from seed (info="warzone-secp256k1")
- secp256k1 signing key (k256 crate)
- Ethereum address: Keccak-256(uncompressed_pubkey[1..])[-20:]
- EIP-55 checksum address formatting
- eth_sign() / eth_verify() for secp256k1 ECDSA
- EthAddress type with Display, hex parsing, checksum
- 5 tests: deterministic, format, checksum, sign/verify, uniqueness

CLI:
- `warzone eth` — show Ethereum address alongside Warzone fingerprint
- Same seed produces both identities (dual-curve)

Dual identity model:
- Ed25519 + X25519 for Warzone messaging (fast, small signatures)
- secp256k1 for Ethereum compatibility (MetaMask, ENS, Ledger/Trezor)
- Both derived from the same BIP39 seed via different HKDF paths

28/28 protocol tests pass.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 13:30:25 +04:00

26 lines
590 B
TOML

[package]
name = "warzone-protocol"
version.workspace = true
edition.workspace = true
[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