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>
26 lines
590 B
TOML
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
|