예제 #1
0
        private static void LoadRealmList(IAuthClient client)
        {
            var packet = new OutgoingAuthPacket(AuthenticationCmd.CMD_REALM_LIST);

            packet.Position += 2;
            packet.Write(0);       // unknown

            packet.Write((byte)1); // # realms, to be repalced with actual number

            packet.Write(0);
            packet.WriteByte(0x40);
            packet.WriteCString("Auuuuuub");
            packet.WriteCString("127.0.0.1:8085");
            packet.WriteFloat(2);
            packet.WriteByte(0x00);
            packet.WriteByte(0x01);
            packet.WriteByte(0x00);

            packet.Write((short)0x0002);

            packet.Position = 1;                         // set the stream offset to write packet size
            packet.Write((short)packet.TotalLength - 3); // write packet size

            client.Send(packet);
        }
예제 #2
0
        private static void SendLogonChallengeReply(IAuthClient client)
        {
            var packet = new OutgoingAuthPacket(AuthenticationCmd.CMD_AUTH_LOGON_CHALLENGE);

            packet.Write((byte)0x00);
            packet.Write((byte)0x00);
            client.Authenticator.WriteServerChallenge(packet);
            packet.Write((byte)0x00);

            client.Send(packet);
        }
예제 #3
0
        private static void SendLogonProofReply(IAuthClient client)
        {
            var packet = new OutgoingAuthPacket(AuthenticationCmd.CMD_AUTH_LOGON_PROOF);

            packet.Write((byte)0x00);
            packet.WriteBigInt(client.Authenticator.SRP.ServerSessionKeyProof, 20);
            packet.WriteInt(0);

            client.Send(packet);
        }