fix: align HKDF info strings with featherChat identity derivation

Changed HKDF expand info strings to match featherChat's identity.rs:
- "warzone-ed25519-identity" → "warzone-ed25519"
- "warzone-x25519-identity" → "warzone-x25519"

Same BIP39 seed now produces identical Ed25519/X25519 keypairs in both
featherChat and WZP. This is the prerequisite for shared identity.

Also added FEATHERCHAT_INTEGRATION.md (1209 lines) from featherChat repo
documenting the full integration plan with confirmed code references.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Siavash Sameni
2026-03-28 08:16:57 +04:00
parent 5425c59e7d
commit ac3b997758
2 changed files with 1211 additions and 2 deletions

View File

@@ -33,13 +33,13 @@ impl KeyExchange for WarzoneKeyExchange {
// Derive Ed25519 signing key via HKDF // Derive Ed25519 signing key via HKDF
let hk = Hkdf::<Sha256>::new(None, seed); let hk = Hkdf::<Sha256>::new(None, seed);
let mut ed25519_bytes = [0u8; 32]; let mut ed25519_bytes = [0u8; 32];
hk.expand(b"warzone-ed25519-identity", &mut ed25519_bytes) hk.expand(b"warzone-ed25519", &mut ed25519_bytes)
.expect("HKDF expand for Ed25519 should not fail"); .expect("HKDF expand for Ed25519 should not fail");
let signing_key = SigningKey::from_bytes(&ed25519_bytes); let signing_key = SigningKey::from_bytes(&ed25519_bytes);
// Derive X25519 static key via HKDF // Derive X25519 static key via HKDF
let mut x25519_bytes = [0u8; 32]; let mut x25519_bytes = [0u8; 32];
hk.expand(b"warzone-x25519-identity", &mut x25519_bytes) hk.expand(b"warzone-x25519", &mut x25519_bytes)
.expect("HKDF expand for X25519 should not fail"); .expect("HKDF expand for X25519 should not fail");
let x25519_static_secret = StaticSecret::from(x25519_bytes); let x25519_static_secret = StaticSecret::from(x25519_bytes);
let x25519_static_public = X25519PublicKey::from(&x25519_static_secret); let x25519_static_public = X25519PublicKey::from(&x25519_static_secret);

File diff suppressed because it is too large Load Diff