Esempio n. 1
0
def test_fast_aggregate_verify(SKs, message):
    PKs = [G2ProofOfPossession.PrivToPub(sk) for sk in SKs]
    signatures = [G2ProofOfPossession.Sign(sk, message) for sk in SKs]
    aggregate_signature = G2ProofOfPossession.Aggregate(signatures)
    assert G2ProofOfPossession.FastAggregateVerify(PKs, message,
                                                   aggregate_signature)
Esempio n. 2
0
def compute_aggregate_signature(SKs, message):
    PKs = [G2ProofOfPossession.SkToPk(sk) for sk in SKs]
    signatures = [G2ProofOfPossession.Sign(sk, message) for sk in SKs]
    aggregate_signature = G2ProofOfPossession.Aggregate(signatures)
    return (PKs, aggregate_signature)
Esempio n. 3
0
 def Aggregate(signatures: Sequence[BLSSignature]) -> BLSSignature:
     # py_ecc use a different EMPTY_SIGNATURE. Return the Trinity one here:
     if len(signatures) == 0:
         return EMPTY_SIGNATURE
     return G2ProofOfPossession.Aggregate(signatures)
Esempio n. 4
0
def Aggregate(signatures):
    return bls.Aggregate(signatures)