예제 #1
0
    private void handleAuthLogonChallenge(RealmPacket packet)
    {
        packet.readByte(); // read unknown
        packet.readByte(); // read error
        srp.B = new BigInteger(packet.readBytes(32));

        int SRP_g_len = packet.readByte();                   // SRP_g length

        srp.g = new BigInteger(packet.readBytes(SRP_g_len)); // SRP_g

        int SRP_N_len = packet.readByte();                   // SRP_N length

        srp.N = new BigInteger(packet.readBytes(SRP_N_len)); // SRP_N

        srp.s = packet.readBytes(32);                        // SRP salt

        packet.readString(16);                               // CRC, not checked
        packet.readByte();                                   // security flag

        // Calculate the SRP values
        srp.calculateSRP_A();
        srp.calculateSRP_x();
        srp.calculateSRP_v();
        srp.calculateSRP_u();
        srp.calculateSRP_S();
        srp.calculateSRP_K();
        srp.calculateSRP_M1();
        srp.calculateSRP_M2();
    }
예제 #2
0
    private void handleAuthLogonChallenge(RealmPacket packet)
    {
        packet.readByte(); // read unknown
        packet.readByte(); // read error
        srp.B = new BigInteger(packet.readBytes(32));

        int SRP_g_len = packet.readByte(); // SRP_g length
        srp.g = new BigInteger(packet.readBytes(SRP_g_len)); // SRP_g

        int SRP_N_len = packet.readByte(); // SRP_N length
        srp.N = new BigInteger(packet.readBytes(SRP_N_len)); // SRP_N

        srp.s = packet.readBytes(32); // SRP salt

        packet.readString(16);  // CRC, not checked
        packet.readByte();      // security flag

        // Calculate the SRP values
        srp.calculateSRP_A();
        srp.calculateSRP_x();
        srp.calculateSRP_v();
        srp.calculateSRP_u();
        srp.calculateSRP_S();
        srp.calculateSRP_K();
        srp.calculateSRP_M1();
        srp.calculateSRP_M2();
    }
예제 #3
0
 private void handleAuthLogonProof(RealmPacket packet)
 {
     // *TODO* Do the proper checks
     packet.readByte();                // error
     byte[] M2 = packet.readBytes(20); // M2
     packet.readUint32();              // unk1
     packet.readUint32();              // unk2
     packet.readUint16();              // unk3
 }
예제 #4
0
 private void handleAuthLogonProof(RealmPacket packet)
 {
     // *TODO* Do the proper checks
     packet.readByte(); // error
     byte[] M2 = packet.readBytes(20); // M2
     packet.readUint32(); // unk1
     packet.readUint32(); // unk2
     packet.readUint16(); // unk3
 }