# -*- coding: utf-8 -*-

# Implementation by Pedro Maat C. Massolino,
# hereby denoted as "the implementer".
#
# To the extent possible under law, the implementer has waived all copyright
# and related or neighboring rights to the source code in this file.
# http://creativecommons.org/publicdomain/zero/1.0/
#

ecc_constants = [
# Curve NIST P-192
# Curve name
["NIST_P192",
# Curve prime
2**192 - 2**64 - 1,
# Curve order
6277101735386680763835789423176059013767194773182842284081,
# Parameter a for Short Weierstrass shape
2**192 - 2**64 - 1 - 3,
# Parameter b for Short Weierstrass shape
2455155546008943817740293915197451784769108058161191238065,
# x0 for base point in Short Weierstrass shape
602046282375688656758213480587526111916698976636884684818,
# y0 for base point in Short Weierstrass shape
174050332293622031404857552280219410364023488927386650641,
],
#
# Curve NIST P-224
# Curve name
["NIST_P224",
# Curve prime
2**224 - 2**96 + 1,
# Curve order
26959946667150639794667015087019625940457807714424391721682722368061,
# Parameter a for Short Weierstrass shape
2**224 - 2**96 + 1 - 3,
# Parameter b for Short Weierstrass shape
18958286285566608000408668544493926415504680968679321075787234672564,
# x0 for base point in Short Weierstrass shape
19277929113566293071110308034699488026831934219452440156649784352033,
# y0 for base point in Short Weierstrass shape
19926808758034470970197974370888749184205991990603949537637343198772,
],
#
# Curve NIST P-256
# Curve name
["NIST_P256",
# Curve prime
2**256 - 2**224 + 2**192 + 2**96 - 1,
# Curve order
115792089210356248762697446949407573529996955224135760342422259061068512044369,
# Parameter a for Short Weierstrass shape
2**256 - 2**224 + 2**192 + 2**96 - 1 - 3,
# Parameter b for Short Weierstrass shape
41058363725152142129326129780047268409114441015993725554835256314039467401291,
# x0 for base point in Short Weierstrass shape
48439561293906451759052585252797914202762949526041747995844080717082404635286,
# y0 for base point in Short Weierstrass shape
36134250956749795798585127919587881956611106672985015071877198253568414405109,
],
#
# Curve NIST P-384
# Curve name
["NIST_P384",
# Curve prime
2**384 - 2**128 - 2**96 + 2**32 - 1,
# Curve order
39402006196394479212279040100143613805079739270465446667946905279627659399113263569398956308152294913554433653942643,
# Parameter a for Short Weierstrass shape
2**384 - 2**128 - 2**96 + 2**32 - 1 - 3,
# Parameter b for Short Weierstrass shape
27580193559959705877849011840389048093056905856361568521428707301988689241309860865136260764883745107765439761230575,
# x0 for base point in Short Weierstrass shape
26247035095799689268623156744566981891852923491109213387815615900925518854738050089022388053975719786650872476732087,
# y0 for base point in Short Weierstrass shape
8325710961489029985546751289520108179287853048861315594709205902480503199884419224438643760392947333078086511627871,
],
#
# Curve NIST P-521
# Curve name
["NIST_P521",
# Curve prime
2**521 - 1,
# Curve order
6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005449,
# Parameter a for Short Weierstrass shape
2**521 - 1 - 3,
# Parameter b for Short Weierstrass shape
1093849038073734274511112390766805569936207598951683748994586394495953116150735016013708737573759623248592132296706313309438452531591012912142327488478985984,
# x0 for base point in Short Weierstrass shape
2661740802050217063228768716723360960729859168756973147706671368418802944996427808491545080627771902352094241225065558662157113545570916814161637315895999846,
# y0 for base point in Short Weierstrass shape
3757180025770020463545507224491183603594455134769762486694567779615544477440556316691234405012945539562144444537289428522585666729196580810124344277578376784,
],
]