コード例 #1
0
        public static void F_ENCRYPTKEY(BaseClient client, PacketIn packet)
        {
            GameClient cclient = (GameClient)client;

            sEncrypt result = BaseClient.ByteToType <sEncrypt>(packet);

            string version = result.major + "." + result.minor + "." + result.revision;

            Log.Debug("F_ENCRYPTKEY", "Version = " + version);
            // Should be a connection to the remote client.
            //Log.Debug("F_ENCRYPTKEY", "Client Ip = " + cclient.);

            if (result.cipher == 0)
            {
                PacketOut Out = new PacketOut((byte)Opcodes.F_RECEIVE_ENCRYPTKEY, 1);
                Out.WriteByte(1);
                cclient.SendPacket(Out);
            }
            else if (result.cipher == 1)
            {
                byte[] encryptKey = new byte[256];
                packet.Read(encryptKey, 0, encryptKey.Length);
                cclient.AddCrypt("RC4Crypto", new CryptKey(encryptKey), new CryptKey(encryptKey));
            }
        }