@@ -51,14 +51,15 @@ final class NistCurve
51
51
*/
52
52
public static function curve256 (): Curve
53
53
{
54
- $ p = gmp_init ('115792089210356248762697446949407573530086143415290314195533631308867097853951 ' , 10 );
54
+ $ p = gmp_init ('0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff ' , 16 );
55
+ $ a = gmp_init ('0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc ' , 16 );
55
56
$ b = gmp_init ('0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b ' , 16 );
56
57
$ x = gmp_init ('0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296 ' , 16 );
57
58
$ y = gmp_init ('0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5 ' , 16 );
58
- $ order = gmp_init ('115792089210356248762697446949407573529996955224135760342422259061068512044369 ' , 10 );
59
- $ generator = Point::create ($ x , $ y , $ order );
59
+ $ n = gmp_init ('0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551 ' , 16 );
60
+ $ generator = Point::create ($ x , $ y , $ n );
60
61
61
- return new Curve (256 , $ p , gmp_init (- 3 , 10 ) , $ b , $ generator );
62
+ return new Curve (256 , $ p , $ a , $ b , $ generator );
62
63
}
63
64
64
65
/**
@@ -68,14 +69,15 @@ public static function curve256(): Curve
68
69
*/
69
70
public static function curve384 (): Curve
70
71
{
71
- $ p = gmp_init ('39402006196394479212279040100143613805079739270465446667948293404245721771496870329047266088258938001861606973112319 ' , 10 );
72
+ $ p = gmp_init ('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff ' , 16 );
73
+ $ a = gmp_init ('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc ' , 16 );
72
74
$ b = gmp_init ('0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef ' , 16 );
73
75
$ x = gmp_init ('0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7 ' , 16 );
74
76
$ y = gmp_init ('0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f ' , 16 );
75
- $ order = gmp_init ('39402006196394479212279040100143613805079739270465446667946905279627659399113263569398956308152294913554433653942643 ' , 10 );
76
- $ generator = Point::create ($ x , $ y , $ order );
77
+ $ n = gmp_init ('0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973 ' , 16 );
78
+ $ generator = Point::create ($ x , $ y , $ n );
77
79
78
- return new Curve (384 , $ p , gmp_init (- 3 , 10 ) , $ b , $ generator );
80
+ return new Curve (384 , $ p , $ a , $ b , $ generator );
79
81
}
80
82
81
83
/**
@@ -85,13 +87,14 @@ public static function curve384(): Curve
85
87
*/
86
88
public static function curve521 (): Curve
87
89
{
88
- $ p = gmp_init ('6864797660130609714981900799081393217269435300143305409394463459185543183397656052122559640661454554977296311391480858037121987999716643812574028291115057151 ' , 10 );
89
- $ b = gmp_init ('0x051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00 ' , 16 );
90
- $ x = gmp_init ('0xc6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66 ' , 16 );
91
- $ y = gmp_init ('0x11839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650 ' , 16 );
92
- $ order = gmp_init ('6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005449 ' , 10 );
93
- $ generator = Point::create ($ x , $ y , $ order );
90
+ $ p = gmp_init ('0x000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ' , 16 );
91
+ $ a = gmp_init ('0x000001fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc ' , 16 );
92
+ $ b = gmp_init ('0x00000051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00 ' , 16 );
93
+ $ x = gmp_init ('0x000000c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66 ' , 16 );
94
+ $ y = gmp_init ('0x0000011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650 ' , 16 );
95
+ $ n = gmp_init ('0x000001fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409 ' , 16 );
96
+ $ generator = Point::create ($ x , $ y , $ n );
94
97
95
- return new Curve (521 , $ p , gmp_init (- 3 , 10 ) , $ b , $ generator );
98
+ return new Curve (521 , $ p , $ a , $ b , $ generator );
96
99
}
97
100
}
0 commit comments