def __init__(self, N, g, k, I, P): self.N = N self.g = g self.k = k self.I = I self.salt = utils.randint(2**256) xH = SHA256_HASH(str(self.salt) + P).encode('hex') x = int(xH, 16) self.v = pow(self.g, x, self.N)
def __init__(self, N, g, k, I, P): self.N = N self.g = g self.k = k self.I = I self.salt = utils.randint(2 ** 256) xH = SHA256_HASH(str(self.salt) + P).encode('hex') x = int(xH, 16) self.v = pow(self.g, x, self.N)
def send_client_params(self): self.a = utils.randint(self.N) self.A = pow(self.g, self.a, self.N) return self.I, self.A
def send_server_params(self): self.b = utils.randint(self.N) self.B = self.k * self.v + pow(self.g, self.b, self.N) return self.salt, self.B
def send_server_params(self): self.b = utils.randint(self.N) self.B = pow(self.g, self.b, self.N) self.u = utils.randint(2**128) self.sock.send( str(self.salt) + " " + str(self.B) + " " + str(self.u) + "\n")
def send_client_params(self): self.a = utils.randint(self.N) self.A = pow(self.g, self.a, self.N) self.sock.send(self.I + " " + str(self.A) + "\n")
def send_server_params(self): self.b = utils.randint(self.N) self.B = self.k * self.v + pow(self.g, self.b, self.N) self.sock.send(str(self.salt) + " " + str(self.B) + "\n")
def send_server_params(self): self.b = utils.randint(self.N) self.B = pow(self.g, self.b, self.N) self.u = utils.randint(2 ** 128) self.sock.send(str(self.salt) + " " + str(self.B) + " " + str(self.u) + "\n")