'Given the public key of the other party as a string of bytes,
calculate our shared secret.
This might raise a ValueError since \'their_pub_str\' is
attacker controlled.'

def get_secret(self, their_pub_str):

    their_pub = int(binascii.hexlify(their_pub_str), 16)
    self.shared_secret = modexp.powMod(their_pub, self.priv, self.mod)
    return int_to_bytes(self.shared_secret, self.group_len)
