Yeah you took that straight from your wiki, Ult & Haydz's implementation, There's not really much competitiveness with them.Quote:
^ Publicly available.Code:public class KeyExchange { public ClientKeyPacket CKeyPacket; public byte[] ClientIV = new byte[8]; public DH Exchange; public bool Exchanged; public byte[] ServerIV = new byte[8]; public ServerKeyPacket SKeyPacket; public KeyExchange() { Random random = new Random(); random.NextBytes(this.ServerIV); random.NextBytes(this.ClientIV); string str = "E7A69EBDF105F2A6BBDEAD7E798F76A209AD73FB466431E2E7352ED262F8C558F10BEFEA977DE9E21DCEE9B04D245F300ECCBBA03E72630556D011023F9E857F"; string str2 = "05"; this.Exchange = new DH(BigNumber.FromHexString(str), BigNumber.FromHexString(str2)); this.Exchange.GenerateKeys(); this.SKeyPacket = new ServerKeyPacket(this.ClientIV, this.ServerIV, str, str2, this.Exchange.PublicKey.ToHexString()); } public void HandleClientKeyPacket(ClientKeyPacket CKeyPacket, GameCryptographer Cryptographer) { Cryptographer.Blowfish.SetKey(this.Exchange.ComputeKey(BigNumber.FromHexString(CKeyPacket.PublicKey))); Cryptographer.Blowfish.EncryptIV = new byte[8]; Cryptographer.Blowfish.DecryptIV = new byte[8]; } public void ResetIVs(GameCryptographer Cryptographer) { Cryptographer.Blowfish.DecryptIV = new byte[8]; Cryptographer.Blowfish.EncryptIV = new byte[8]; } }
There implementation is "as messy" as mine, All I have is an extra method, and its near enough the same regarding "messyness", so I don't see how you can call my work messy & not the implementation you just linked.