blob: 9fcc487154013ba13554990a37a749fd014ffdd7 [file] [log] [blame]
# BN254 curve constants
from constants import *
SHA = 'sha256' # hash type to use with this curve
EFS = 32 # Elliptic curve Field Size in bytes
CurveType = WEIERSTRASS
SexticTwist = D_TYPE
SignOfX = NEGATIVEX
PairingFriendly = BN
x = 0x4000000003C012B1
if SignOfX == NEGATIVEX:
p = 36 * x * x * x * x - 36 * x * x * x + 24 * x * x - 6 * x + 1
else:
p = 36 * x * x * x * x + 36 * x * x * x + 24 * x * x + 6 * x + 1
t = 6 * x * x + 1
r = p + 1 - t
# elliptic curve
A = 0
B = 2
# generator point on G1
Gx = p - 1
Gy = 1
# Frobenius constant
Fra = 0x1359082FA63A0164AFE18B8AACA7189868677326F173F8215BD9083355C80EA3
Frb = 0x10A6F7D0623628A900DC53D9CDBC4E3ABBD863C7269546C0628D1BBC06534710
# Generator point on G2
Pxa = 0x1AC95A5B7F9A9B4FA7121C73CB19C2F0944FB8E61B99362851C3E806CB5FAAF5
Pxb = 0x53D3001036566043F11C2D1681F364C1BBA33A1ABDA094DEDE50060FC15F433
Pya = 0x15727970B09E6FB2EE06BBFEF918406479DFF0936EA3484E6833216A9772A299
Pyb = 0x11BCB56C02AC189FD57BD77F56070166D320056091A061ADC41BC11F9C49E8CD