def verify_clients_proof(self, m) -> bool:
    if (self.B is None):
        raise RuntimeError("Server's public key is missing")
    hash_instance = self.h()
    hash_instance.update(Srp.to_byte_array(self.n))
    hN = bytearray(hash_instance.digest())
    hash_instance = self.h()
    hash_instance.update(Srp.to_byte_array(self.g))
    hg = bytearray(hash_instance.digest())
    for index in range(0, len(hN)):
        hN[index] ^= hg[index]
    u = self.username.encode()
    hash_instance = self.h()
    hash_instance.update(u)
    hu = hash_instance.digest()
    K = Srp.to_byte_array(self.get_session_key())
    hash_instance = self.h()
    hash_instance.update(hN)
    hash_instance.update(hu)
    hash_instance.update(Srp.to_byte_array(self.salt))
    hash_instance.update(Srp.to_byte_array(self.A))
    hash_instance.update(Srp.to_byte_array(self.B))
    hash_instance.update(K)
    return (m == int.from_bytes(hash_instance.digest(), 'big'))
def verify_clients_proof(self, m) -> bool:
    if (self.B is None):
        raise RuntimeError("Server's public key is missing")
    hash_instance = self.h()
    hash_instance.update(Srp.to_byte_array(self.n))
    hN = bytearray(hash_instance.digest())
    hash_instance = self.h()
    hash_instance.update(Srp.to_byte_array(self.g))
    hg = bytearray(hash_instance.digest())
    for index in range(0, len(hN)):
        hN[index] ^= hg[index]
    u = self.username.encode()
    hash_instance = self.h()
    hash_instance.update(u)
    hu = hash_instance.digest()
    K = Srp.to_byte_array(self.get_session_key())
    hash_instance = self.h()
    hash_instance.update(hN)
    hash_instance.update(hu)
    hash_instance.update(Srp.to_byte_array(self.salt))
    hash_instance.update(Srp.to_byte_array(self.A))
    hash_instance.update(Srp.to_byte_array(self.B))
    hash_instance.update(K)
    return (m == int.from_bytes(hash_instance.digest(), 'big'))