54 public static function initialize()
56 if (count(static::$curves) !== 0) {
60 # (name, p_XXX, a, b, (xG, yG), n, h) 61 static::$curves[
'nistp256'] =
new static(
63 gmp_init(
'0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff'),
64 gmp_init(
'0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc'),
65 gmp_init(
'0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b'),
66 new \fpoirotte\Pssht\ECC\Point(
67 '0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296',
68 '0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5' 70 gmp_init(
'0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551'),
73 static::$curves[
'nistp384'] =
new static(
76 '0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' .
77 'FFFFFFEFFFFFFFF0000000000000000FFFFFFFF' 80 '0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' .
81 'FFFFFFEFFFFFFFF0000000000000000FFFFFFFC' 84 '0xB3312FA7E23EE7E4988E056BE3F82D19181D9C6EFE8141120314088F5' .
85 '013875AC656398D8A2ED19D2A85C8EDD3EC2AEF' 87 new \fpoirotte\Pssht\ECC\Point(
88 '0xAA87CA22BE8B05378EB1C71EF320AD746E1D3B628BA79B9859F741E08' .
89 '2542A385502F25DBF55296C3A545E3872760AB7',
90 '0x3617DE4A96262C6F5D9E98BF9292DC29F8F41DBD289A147CE9DA3113B' .
91 '5F0B8C00A60B1CE1D7E819D7A431D7C90EA0E5F' 94 '0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7634D81F' .
95 '4372DDF581A0DB248B0A77AECEC196ACCC52973' 99 static::$curves[
'nistp521'] =
new static(
102 '0x01FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' .
103 'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' .
107 '0x01FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' .
108 'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' .
112 '0x0051953EB9618E1C9A1F929A21A0B68540EEA2DA725B99B315F3B8B48' .
113 '9918EF109E156193951EC7E937B1652C0BD3BB1BF073573DF883D2C34F1' .
116 new \fpoirotte\Pssht\ECC\Point(
117 '0x00C6858E06B70404E9CD9E3ECB662395B4429C648139053FB521F828A' .
118 'F606B4D3DBAA14B5E77EFE75928FE1DC127A2FFA8DE3348B3C1856A429B' .
120 '0x011839296A789A3BC0045C8A5FB42C7D1BD998F54449579B446817AFB' .
121 'D17273E662C97EE72995EF42640C550B9013FAD0761353C7086A272C240' .
125 '0x01FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' .
126 'FFFFFFFFFFA51868783BF2F966B7FCC0148F709A5D03BB5C9B8899C47AE' .
133 public static function getCurve(
$name)
135 if (!isset(static::$curves[
$name])) {
136 throw new \InvalidArgumentException();
138 return static::$curves[
$name];
141 public function getName()
146 public function getModulus()
151 public function getA()
156 public function getB()
161 public function getGenerator()
166 public function getOrder()
171 public function getCofactor()
static $curves
Array with standard curves.
$a
"a" value from the elliptic curve equation.
$b
"b" value from the elliptic curve equation.