// KeyExchange is a multibyte packet based action public void KeyExchangeInit() { // This Should Be a KeyExchange Packet Packet packet = RecvPacket(null); PacketKeyExchange packet_kex_server = new PacketKeyExchange(packet); packet_kex_server.Parse(); verify_i_s = packet_kex_server.GetPayload(); PacketKeyExchange packet_kex_client = new PacketKeyExchange(); packet_kex_client.Reset(); packet_kex_client.Pack(); verify_i_c = packet_kex_client.GetPayload(); SendPacket(null, packet_kex_client); NegotiateAlgorithms(packet_kex_client, packet_kex_server); }