def create_pubkey(self): if self.pub_key or not self.auths.count(): return auth = self.auths.first() data = { "voting": self.id, "auths": [ {"name": a.name, "url": a.url} for a in self.auths.all() ], } key = mods.post('mixnet', baseurl=auth.url, json=data) pk = Key(p=key["p"], g=key["g"], y=key["y"]) pk.save() self.pub_key = pk self.save()
def gen_key(self, p=0, g=0): crypt = MixCrypt(bits=B) if self.key: k = crypt.setk(self.key.p, self.key.g, self.key.y, self.key.x) elif (not g or not p): k = crypt.genk() key = Key(p=int(k.p), g=int(k.g), y=int(k.y), x=int(k.x)) key.save() self.key = key self.save() else: k = crypt.getk(p, g) key = Key(p=int(k.p), g=int(k.g), y=int(k.y), x=int(k.x)) key.save() self.key = key self.save()