def responseHandshake(self, p: int, g: int, open_key: int) -> int: self.p, self.g, self.user_ok = p, g, open_key self.pk = Utils.fastModuloPow(open_key, self.generated_secret_key, p) self.open_key = Utils.fastModuloPow(self.g, self.generated_secret_key, self.p) return self.open_key
def requestHandshake(self, user) -> None: self.p = self.png.getSophiePrime() self.g = self.png.getPrimitiveRootModulo(self.p) # always can use 2 self.open_key = Utils.fastModuloPow(self.g, self.generated_secret_key, self.p) self.user_ok = user.responseHandshake(self.p, self.g, self.open_key) self.pk = Utils.fastModuloPow(self.user_ok, self.generated_secret_key, self.p)