25 lines
820 B
Python
25 lines
820 B
Python
from bn128_pairing import pairing, neg, G2, G1, multiply, FQ12, curve_order
|
|
|
|
p1 = pairing(G2, G1)
|
|
pn1 = pairing(G2, neg(G1))
|
|
assert p1 * pn1 == FQ12.one()
|
|
print 'Pairing check against negative in G1 passed'
|
|
np1 = pairing(neg(G2), G1)
|
|
assert p1 * np1 == FQ12.one()
|
|
assert pn1 == np1
|
|
print 'Pairing check against negative in G2 passed'
|
|
assert p1 ** curve_order == FQ12.one()
|
|
print 'Pairing output has correct order'
|
|
p2 = pairing(G2, multiply(G1, 2))
|
|
assert p1 * p1 == p2
|
|
print 'Pairing bilinearity in G1 passed'
|
|
assert p1 != p2 and p1 != np1 and p2 != np1
|
|
print 'Pairing is non-degenerate'
|
|
po2 = pairing(multiply(G2, 2), G1)
|
|
assert p1 * p1 == po2
|
|
print 'Pairing bilinearity in G2 passed'
|
|
p3 = pairing(multiply(G2, 27), multiply(G1, 37))
|
|
po3 = pairing(G2, multiply(G1, 999))
|
|
assert p3 == po3
|
|
print 'Composite check passed'
|