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>
This commit is contained in:
@@ -9,7 +9,7 @@ members = [
|
||||
]
|
||||
|
||||
[workspace.package]
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
edition = "2021"
|
||||
license = "MIT"
|
||||
rust-version = "1.75"
|
||||
@@ -25,6 +25,10 @@ sha2 = "0.10"
|
||||
argon2 = "0.5"
|
||||
rand = "0.8"
|
||||
|
||||
# Ethereum compatibility
|
||||
k256 = { version = "0.13", features = ["ecdsa", "serde"] }
|
||||
tiny-keccak = { version = "2", features = ["keccak"] }
|
||||
|
||||
# BIP39
|
||||
bip39 = "2"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user