def toPublicKey(self) -> PublicKey: result: PublicKey = PublicKey.__new__(PublicKey) result.value = G2Obj() MilagroPairing.ECP2_BLS381_generator(byref(result.value)) MilagroPairing.ECP2_BLS381_mul(byref(result.value), self.value) return result
def verify(self, agInfo: AggregationInfo) -> bool: if self.isInf(): return False sig: G1Obj = self.value generator: G2Obj = G2Obj() sigPairing: FP12Obj = FP12Obj() MilagroCurve.ECP_BLS381_neg(byref(sig)) MilagroPairing.ECP2_BLS381_generator(byref(generator)) MilagroPairing.PAIR_BLS381_ate(byref(sigPairing), byref(generator), byref(sig)) MilagroPairing.FP12_BLS381_ssmul(byref(sigPairing), byref(agInfo.value)) MilagroPairing.PAIR_BLS381_fexp(byref(sigPairing)) return int(MilagroPairing.FP12_BLS381_isunity(byref(sigPairing))) == 1