def generate_session_key(self, client_eph, verifier): assert self.server_ephemeral scramble = Srp._scramble_a_b(client_eph, self.server_ephemeral) pow_verifier = pow(verifier, scramble, Srp.MODULUS) pow_verifier *= client_eph to_interleave = pow(pow_verifier, self.priv_ephemeral, Srp.MODULUS) self.session_key = sha1_interleave(to_interleave)
def test_sha1_interleave(self): big_int = 1555674156741514756417567416567415647156 expected = \ b"6\xa0\xf9\xcf\x1f\xe01\x96\xfc\x87\xd7F-\x88\xfd\x9a\xd0\xa5" \ b"\xe0C\xdb\xdc\xfb\xf7\xf7\x04\x8b\xa8\x12\r/4SjR^7:\x86U" result = sha1.sha1_interleave(big_int) self.assertEquals(result, expected)