Add detailed X25519 and ECDH public key logging
Some checks failed
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled

Complete client密钥encoding分析:
- OpenSSH kexc25519_shared_key_ext分析
- OpenSSH kex_derive_keys分析
- 确认client使用同一个mpint encoding(非双重encoding)

已验证的完整数据:
- Client/Server public keys (32 bytes)
- X25519 shared secret计算过程
- Server密钥派生100%正确

核心矛盾:
- 签名成功 → exchange hash相同
- MAC失败 → 密钥不同

唯一解释:Client计算的shared secret bytes ≠ Server

下一步:Wireshark对比OpenSSH vs MarkBaseSSH的packet encoding
This commit is contained in:
Warren
2026-06-14 20:58:46 +08:00
parent 62d874c68c
commit db28c05964
2 changed files with 9 additions and 2 deletions

View File

@@ -194,9 +194,11 @@ impl KexExchangeHandler {
info!("K_S length: {}", host_key_blob.len());
info!("Q_C (client ECDH public key): {:?}", &client_public_key[..std::cmp::min(16, client_public_key.len())]);
info!("Q_C full (32 bytes): {:?}", client_public_key);
info!("Q_C length: {}", client_public_key.len());
info!("Q_S (server ECDH public key): {:?}", &server_public_key[..std::cmp::min(16, server_public_key.len())]);
info!("Q_S full (32 bytes): {:?}", server_public_key);
info!("Q_S length: {}", server_public_key.len());
let mut hasher = Sha256::new();