예제 #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();
    }