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