math/gfreduce.[ch]: Fix out-of-bounds memory access.
[u/mdw/catacomb] / math / ectab.in
1 # Standard ellipic curves
2
3 #----- Curves from SEC2 -----------------------------------------------------
4
5 curve secp112r1 prime
6 p 0xdb7c2abf62e35e668076bead208b
7 a 0xdb7c2abf62e35e668076bead2088
8 b 0x659ef8ba043916eede8911702b22
9 r 0xdb7c2abf62e35e7628dfac6561c5
10 h 1
11 gx 0x09487239995a5ee76b55f9c2f098
12 gy 0xa89ce5af8724c0a23e0e0ff77500
13 curve secp112r2 prime
14 p 0xdb7c2abf62e35e668076bead208b
15 a 0x6127c24c05f38a0aaaf65c0ef02c
16 b 0x51def1815db5ed74fcc34c85d709
17 r 0x36df0aafd8b8d7597ca10520d04b
18 h 4
19 gx 0x4ba30ab5e892b4e1649dd0928643
20 gy 0xadcd46f5882e3747def36e956e97
21
22 curve secp128r1 niceprime
23 p 0xfffffffdffffffffffffffffffffffff
24 a 0xfffffffdfffffffffffffffffffffffc
25 b 0xe87579c11079f43dd824993c2cee5ed3
26 r 0xfffffffe0000000075a30d1b9038a115
27 h 1
28 gx 0x161ff7528b899b2d0c28607ca52c5b86
29 gy 0xcf5ac8395bafeb13c02da292dded7a83
30 curve secp128r2 niceprime
31 p 0xfffffffdffffffffffffffffffffffff
32 a 0xd6031998d1b3bbfebf59cc9bbff9aee1
33 b 0x5eeefca380d02919dc2c6558bb6d8a5d
34 r 0x3fffffff7fffffffbe0024720613b5a3
35 h 4
36 gx 0x7b6aa5d85e572983e6fb32a7cdebc140
37 gy 0x27b6916a894d3aee7106fe805fc34b44
38
39 curve secp160k1 niceprime
40 p 0xfffffffffffffffffffffffffffffffeffffac73
41 a 0
42 b 7
43 r 0x0100000000000000000001b8fa16dfab9aca16b6b3
44 h 1
45 gx 0x3b4c382ce37aa192a4019e763036f4f5dd4d7ebb
46 gy 0x938cf935318fdced6bc28286531733c3f03c4fee
47 curve secp160r1 niceprime
48 p 0xffffffffffffffffffffffffffffffff7fffffff
49 a 0xffffffffffffffffffffffffffffffff7ffffffc
50 b 0x1c97befc54bd7a8b65acf89f81d4d4adc565fa45
51 r 0x0100000000000000000001f4c8f927aed3ca752257
52 h 1
53 gx 0x4a96b5688ef573284664698968c38bb913cbfc82
54 gy 0x23a628553168947d59dcc912042351377ac5fb32
55 curve secp160r2 niceprime
56 p 0xfffffffffffffffffffffffffffffffeffffac73
57 a 0xfffffffffffffffffffffffffffffffeffffac70
58 b 0xb4e134d3fb59eb8bab57274904664d5af50388ba
59 r 0x0100000000000000000000351ee786a818f3a1a16b
60 h 1
61 gx 0x52dcb034293a117e1f4ff11b30f7199d3144ce6d
62 gy 0xfeaffef2e331f296e071fa0df9982cfea7d43f2e
63
64 curve secp192k1 niceprime
65 p 0xfffffffffffffffffffffffffffffffffffffffeffffee37
66 a 0
67 b 3
68 r 0xfffffffffffffffffffffffe26f2fc170f69466a74defd8d
69 h 1
70 gx 0xdb4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d
71 gy 0x9b2f2f6d9c5628a7844163d015be86344082aa88d95e2f9d
72 curve secp192r1 niceprime
73 p 0xfffffffffffffffffffffffffffffffeffffffffffffffff
74 a 0xfffffffffffffffffffffffffffffffefffffffffffffffc
75 b 0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1
76 r 0xffffffffffffffffffffffff99def836146bc9b1b4d22831
77 h 1
78 gx 0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012
79 gy 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811
80
81 curve secp224k1 niceprime
82 p 0xfffffffffffffffffffffffffffffffffffffffffffffffeffffe56d
83 a 0
84 b 5
85 r 0x010000000000000000000000000001dce8d2ec6184caf0a971769fb1f7
86 h 1
87 gx 0xa1455b334df099df30fc28a169a467e9e47075a90f7e650eb6b7a45c
88 gy 0x7e089fed7fba344282cafbd6f7e319f7c0b0bd59e2ca4bdb556d61a5
89 curve secp224r1 niceprime
90 p 0xffffffffffffffffffffffffffffffff000000000000000000000001
91 a 0xfffffffffffffffffffffffffffffffefffffffffffffffffffffffe
92 b 0xb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4
93 r 0xffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d
94 h 1
95 gx 0xb70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21
96 gy 0xbd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34
97
98 curve secp256k1 niceprime
99 p 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f
100 a 0
101 b 7
102 r 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141
103 h 1
104 gx 0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798
105 gy 0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8
106 curve secp256r1 niceprime
107 p 0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff
108 a 0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc
109 b 0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b
110 r 0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551
111 h 1
112 gx 0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296
113 gy 0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5
114
115 curve secp384r1 niceprime
116 p 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
117 a 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc
118 b 0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef
119 r 0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973
120 h 1
121 gx 0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7
122 gy 0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f
123
124 curve secp521r1 niceprime
125 p 0x01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
126 a 0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
127 b 0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00
128 r 0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409
129 h 1
130 gx 0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66
131 gy 0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650
132
133 curve sect113r1 binpoly
134 p 0x20000000000000000000000000201
135 a 0x003088250ca6e7c7fe649ce85820f7
136 b 0x00e8bee4d3e2260744188be0e9c723
137 r 0x0100000000000000d9ccec8a39e56f
138 h 2
139 gx 0x009d73616f35f4ab1407d73562c10f
140 gy 0x00a52830277958ee84d1315ed31886
141 curve sect113r2 binpoly
142 p 0x20000000000000000000000000201
143 a 0x00689918dbec7e5a0dd6dfc0aa55c7
144 b 0x0095e9a9ec9b297bd4bf36e059184f
145 r 0x010000000000000108789b2496af93
146 h 2
147 gx 0x01a57a6a7b26ca5ef52fcdb8164797
148 gy 0x00b3adc94ed1fe674c06e695baba1d
149
150 curve sect131r1 binpoly
151 p 0x80000000000000000000000000000010d
152 a 0x07a11b09a76b562144418ff3ff8c2570b8
153 b 0x0217c05610884b63b9c6c7291678f9d341
154 r 0x0400000000000000023123953a9464b54d
155 h 2
156 gx 0x0081baf91fdf9833c40f9c181343638399
157 gy 0x078c6e7ea38c001f73c8134b1b4ef9e150
158 curve sect131r2 binpoly
159 p 0x80000000000000000000000000000010d
160 a 0x03e5a88919d7cafcbf415f07c2176573b2
161 b 0x04b8266a46c55657ac734ce38f018f2192
162 r 0x0400000000000000016954a233049ba98f
163 h 2
164 gx 0x0356dcd8f2f95031ad652d23951bb366a8
165 gy 0x0648f06d867940a5366d9e265de9eb240f
166
167 curve sect163k1 binpoly
168 p 0x800000000000000000000000000000000000000c9
169 a 1
170 b 1
171 r 0x04000000000000000000020108a2e0cc0d99f8a5ef
172 h 2
173 gx 0x02fe13c0537bbc11acaa07d793de4e6d5e5c94eee8
174 gy 0x0289070fb05d38ff58321f2e800536d538ccdaa3d9
175 curve sect163r1 binpoly
176 p 0x800000000000000000000000000000000000000c9
177 a 0x07b6882caaefa84f9554ff8428bd88e246d2782ae2
178 b 0x0713612dcddcb40aab946bda29ca91f73af958afd9
179 r 0x03ffffffffffffffffffff48aab689c29ca710279b
180 h 2
181 gx 0x0369979697ab43897789566789567f787a7876a654
182 gy 0x00435edb42efafb2989d51fefce3c80988f41ff883
183 curve sect163r2 binpoly
184 p 0x800000000000000000000000000000000000000c9
185 a 1
186 b 0x020a601907b8c953ca1481eb10512f78744a3205fd
187 r 0x040000000000000000000292fe77e70c12a4234c33
188 h 2
189 gx 0x03f0eba16286a2d57ea0991168d4994637e8343e36
190 gy 0x00d51fbc6c71a0094fa2cdd545b11c5c0c797324f1
191
192 curve sect193r1 binpoly
193 p 0x2000000000000000000000000000000000000000000008001
194 a 0x0017858feb7a98975169e171f77b4087de098ac8a911df7b01
195 b 0x00fdfb49bfe6c3a89facadaa7a1e5bbc7cc1c2e5d831478814
196 r 0x01000000000000000000000000c7f34a778f443acc920eba49
197 h 2
198 gx 0x01f481bc5f0ff84a74ad6cdf6fdef4bf6179625372d8c0c5e1
199 gy 0x0025e399f2903712ccf3ea9e3a1ad17fb0b3201b6af7ce1b05
200 curve sect193r2 binpoly
201 p 0x2000000000000000000000000000000000000000000008001
202 a 0x0163f35a5137c2ce3ea6ed8667190b0bc43ecd69977702709b
203 b 0x00c9bb9e8927d4d64c377e2ab2856a5b16e3efb7f61d4316ae
204 r 0x010000000000000000000000015aab561b005413ccd4ee99d5
205 h 2
206 gx 0x00d9b67d192e0367c803f39e1a7e82ca14a651350aae617e8f
207 gy 0x01ce94335607c304ac29e7defbd9ca01f596f927224cdecf6c
208
209 curve sect233k1 binpoly
210 p 0x20000000000000000000000000000000000000004000000000000000001
211 a 0
212 b 1
213 r 0x8000000000000000000000000000069d5bb915bcd46efb1ad5f173abdf
214 h 4
215 gx 0x017232ba853a7e731af129f22ff4149563a419c26bf50a4c9d6eefad6126
216 gy 0x01db537dece819b7f70f555a67c427a8cd9bf18aeb9b56e0c11056fae6a3
217 curve sect233r1 binpoly
218 p 0x20000000000000000000000000000000000000004000000000000000001
219 a 1
220 b 0x0066647ede6c332c7f8c0923bb58213b333b20e9ce4281fe115f7d8f90ad
221 r 0x01000000000000000000000000000013e974e72f8a6922031d2603cfe0d7
222 h 2
223 gx 0x00fac9dfcbac8313bb2139f1bb755fef65bc391f8b36f8f8eb7371fd558b
224 gy 0x01006a08a41903350678e58528bebf8a0beff867a7ca36716f7e01f81052
225
226 curve sect239k1 binpoly
227 p 0x800000000000000000004000000000000000000000000000000000000001
228 a 0
229 b 1
230 r 0x2000000000000000000000000000005a79fec67cb6e91f1c1da800e478a5
231 h 4
232 gx 0x29a0b6a887a983e9730988a68727a8b2d126c44cc2cc7b2a6555193035dc
233 gy 0x76310804f12e549bdb011c103089e73510acb275fc312a5dc6b76553f0ca
234
235 curve sect283k1 binpoly
236 p 0x800000000000000000000000000000000000000000000000000000000000000000010a1
237 a 0
238 b 1
239 r 0x01ffffffffffffffffffffffffffffffffffe9ae2ed07577265dff7f94451e061e163c61
240 h 4
241 gx 0x0503213f78ca44883f1a3b8162f188e553cd265f23c1567a16876913b0c2ac2458492836
242 gy 0x01ccda380f1c9e318d90f95d07e5426fe87e45c0e8184698e45962364e34116177dd2259
243 curve sect283r1 binpoly
244 p 0x800000000000000000000000000000000000000000000000000000000000000000010a1
245 a 1
246 b 0x027b680ac8b8596da5a4af8a19a0303fca97fd7645309fa2a581485af6263e313b79a2f5
247 r 0x03ffffffffffffffffffffffffffffffffffef90399660fc938a90165b042a7cefadb307
248 h 2
249 gx 0x05f939258db7dd90e1934f8c70b0dfec2eed25b8557eac9c80e2e198f8cdbecd86b12053
250 gy 0x03676854fe24141cb98fe6d4b20d02b4516ff702350eddb0826779c813f0df45be8112f4
251
252 curve sect409k1 binpoly
253 p 0x2000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000001
254 a 0
255 b 1
256 r 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffe5f83b2d4ea20400ec4557d5ed3e3e7ca5b4b5c83b8e01e5fcf
257 h 4
258 gx 0x0060f05f658f49c1ad3ab1890f7184210efd0987e307c84c27accfb8f9f67cc2c460189eb5aaaa62ee222eb1b35540cfe9023746
259 gy 0x01e369050b7c4e42acba1dacbf04299c3460782f918ea427e6325165e9ea10e3da5f6c42e9c55215aa9ca27a5863ec48d8e0286b
260 curve sect409r1 binpoly
261 p 0x2000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000001
262 a 1
263 b 0x0021a5c2c8ee9feb5c4b9a753b7b476b7fd6422ef1f3dd674761fa99d6ac27c8a9a197b272822f6cd57a55aa4f50ae317b13545f
264 r 0x010000000000000000000000000000000000000000000000000001e2aad6a612f33307be5fa47c3c9e052f838164cd37d9a21173
265 h 2
266 gx 0x015d4860d088ddb3496b0c6064756260441cde4af1771d4db01ffe5b34e59703dc255a868a1180515603aeab60794e54bb7996a7
267 gy 0x0061b1cfab6be5f32bbfa78324ed106a7636b9c5a7bd198d0158aa4f5488d08f38514f1fdf4b4f40d2181b3681c364ba0273c706
268
269 curve sect571k1 binpoly
270 p 0x80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000425
271 a 0
272 b 1
273 r 0x020000000000000000000000000000000000000000000000000000000000000000000000131850e1f19a63e4b391a8db917f4138b630d84be5d639381e91deb45cfe778f637c1001
274 h 4
275 gx 0x026eb7a859923fbc82189631f8103fe4ac9ca2970012d5d46024804801841ca44370958493b205e647da304db4ceb08cbbd1ba39494776fb988b47174dca88c7e2945283a01c8972
276 gy 0x0349dc807f4fbf374f4aeade3bca95314dd58cec9f307a54ffc61efc006d8a2c9d4979c0ac44aea74fbebbb9f772aedcb620b01a7ba7af1b320430c8591984f601cd4c143ef1c7a3
277 curve sect571r1 binpoly
278 p 0x80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000425
279 a 1
280 b 0x02f40e7e2221f295de297117b7f3d62f5c6a97ffcb8ceff1cd6ba8ce4a9a18ad84ffabbd8efa59332be7ad6756a66e294afd185a78ff12aa520e4de739baca0c7ffeff7f2955727a
281 r 0x03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe661ce18ff55987308059b186823851ec7dd9ca1161de93d5174d66e8382e9bb2fe84e47
282 h 2
283 gx 0x0303001d34b856296c16c0d40d3cd7750a93d1d2955fa80aa5f40fc8db7b2abdbde53950f4c0d293cdd711a35b67fb1499ae60038614f1394abfa3b4c850d927e1e7769c8eec2d19
284 gy 0x037bf27342da639b6dccfffeb73d69d78c6c27a6009cbbca1980f8533921e8a684423e43bab08a576291af8f461bb2a8b3531d2f0485c19b16e2f1516e23dd3c1a4827af1b8ac15b
285
286 #----- Curves from ANSI X9.62 -----------------------------------------------
287 #
288 # The conversion factors for the normal basis representations were generated
289 # because none were given in the document.
290
291 curve ansi-c2pnb163v1 binpoly
292 p 0x080000000000000000000000000000000000000107
293 a 0x072546b5435234a422e0789675f432c89435de5242
294 b 0x00c9517d06d5240d3cff38c74b20b6cd4d6f9dd4d9
295 r 0x0400000000000000000001e60fc8821cc74daeafc1
296 h 2
297 gx 0x07af69989546103d79329fcc3d74880f33bbe803cb
298 gy 0x01ec23211b5966adea1d3f87f7ea5848aef0b7ca9f
299 curve ansi-c2pnb163v2 binpoly
300 p 0x080000000000000000000000000000000000000107
301 a 0x0108b39e77c4b108bed981ed0e890e117c511cf072
302 b 0x0667aceb38af4e488c407433ffae4f1c811638df20
303 r 0x03fffffffffffffffffffdf64de1151adbb78f10a7
304 h 2
305 gx 0x0024266e4eb5106d0a964d92c4860e2671db9b6cc5
306 gy 0x079f684ddf6684c5cd258b3890021b2386dfd19fc5
307 curve ansi-c2pnb163v3 binpoly
308 p 0x080000000000000000000000000000000000000107
309 a 0x07a526c63d3e25a256a007699f5447e32ae456b50e
310 b 0x03f7061798eb99e238fd6f1bf95b48feeb4854252b
311 r 0x03fffffffffffffffffffe1aee140f110aff961309
312 h 2
313 gx 0x02f9f87b7c574d0bdecf8a22e6524775f98cdebdcb
314 gy 0x05b935590c155e17ea48eb3ff3718b893df59a05d0
315
316 curve ansi-c2tnb191v1 binpoly
317 p 0x800000000000000000000000000000000000000000000201
318 a 0x2866537b676752636a68f56554e12640276b649ef7526267
319 b 0x2e45ef571f00786f67b0081b9495a3d95462f5de0aa185ec
320 r 0x40000000000000000000000004a20e90c39067c893bbb9a5
321 h 2
322 gx 0x36b3daf8a23206f9c4f299d7b21a9c369137f2c84ae1aa0d
323 gy 0x765be73433b3f95e332932e70ea245ca2418ea0ef98018fb
324 curve ansi-c2tnb191v2 binpoly
325 p 0x800000000000000000000000000000000000000000000201
326 a 0x401028774d7777c7b7666d1366ea432071274f89ff01e718
327 b 0x0620048d28bcbd03b6249c99182b7c8cd19700c362c46a01
328 r 0x20000000000000000000000050508cb89f652824e06b8173
329 h 4
330 gx 0x3809b2b7cc1b28cc5a87926aad83fd28789e81e2c9e3bf10
331 gy 0x17434386626d14f3dbf01760d9213a3e1cf37aec437d668a
332 curve ansi-c2tnb191v3 binpoly
333 p 0x800000000000000000000000000000000000000000000201
334 a 0x6c01074756099122221056911c77d77e77a777e7e7e77fcb
335 b 0x71fe1af926cf847989efef8db459f66394d90f32ad3f15e8
336 r 0x155555555555555555555555610c0b196812bfb6288a3ea3
337 h 6
338 gx 0x375d4ce24fde434489de8746e71786015009e66e38a926dd
339 gy 0x545a39176196575d985999366e6ad34ce0a77cd7127b06be
340 curve ansi-c2onb191v1 binnorm
341 p 0x800000000000000000000000000000000000000000000201
342 beta 0x19c409a7f85383bf0ef72b097a5c7398013a2dba6269292d
343 a 0x65903e04e1e4924253e26a3c9ac28c758bd8184a3fb680e8
344 b 0x54678621b190cfce282ade219d5b3a065e3f4b3ffdebb29b
345 r 0x4000000000000000000000009cf2d6e3901dac4c32eec65d
346 h 2
347 gx 0x5a2c69a32e8638e51ccefaad05350a978457cb5fb6df994a
348 gy 0x0f32fe0fa0e902f19b17d363c269f4f5cfe8087618569954
349 curve ansi-c2onb191v2 binnorm
350 p 0x800000000000000000000000000000000000000000000201
351 beta 0x19c409a7f85383bf0ef72b097a5c7398013a2dba6269292d
352 a 0x25f8d06c97c822536d469cd5170cdd7bb9f500bd6db110fb
353 b 0x75ff570e35ca94fb3780c2619d081c17aa59fbd5e591c1c4
354 r 0x0fffffffffffffffffffffffeeb354b7270b2992b7818627
355 h 8
356 gx 0x2a16910e8f6c4b199be24213857abc9c992edfb2471f3c68
357 gy 0x1592dbfebeb81a7c071b744d5e2f9e242ea65b81138a3468
358
359 curve ansi-c2tnb239v1 binpoly
360 p 0x800000000000000000000000000000000000000000000000001000000001
361 a 0x32010857077c5431123a46b808906756f543423e8d27877578125778ac76
362 b 0x790408f2eedaf392b012edefb3392f30f4327c0ca3f31fc383c422aa8c16
363 r 0x2000000000000000000000000000000f4d42ffe1492a4993f1cad666e447
364 h 4
365 gx 0x57927098fa932e7c0a96d3fd5b706ef7e5f5c156e16b7e7c86038552e91d
366 gy 0x61d8ee5077c33fecf6f1a16b268de469c3c7744ea9a971649fc7a9616305
367 curve ansi-c2tnb239v2 binpoly
368 p 0x800000000000000000000000000000000000000000000000001000000001
369 a 0x4230017757a767fae42398569b746325d45313af0766266479b75654e65f
370 b 0x5037ea654196cff0cd82b2c14a2fcf2e3ff8775285b545722f03eacdb74b
371 r 0x1555555555555555555555555555553c6f2885259c31e3fcdf154624522d
372 h 6
373 gx 0x28f9d04e900069c8dc47a08534fe76d2b900b7d7ef31f5709f200c4ca205
374 gy 0x5667334c45aff3b5a03bad9dd75e2c71a99362567d5453f7fa6e227ec833
375 curve ansi-c2tnb239v3 binpoly
376 p 0x800000000000000000000000000000000000000000000000001000000001
377 a 0x01238774666a67766d6676f778e676b66999176666e687666d8766c66a9f
378 b 0x6a941977ba9f6a435199acfc51067ed587f519c5ecb541b8e44111de1d40
379 r 0x0cccccccccccccccccccccccccccccac4912d2d9df903ef9888b8a0e4cff
380 h 10
381 gx 0x70f6e9d04d289c4e89913ce3530bfde903977d42b146d539bf1bde4e9c92
382 gy 0x2e5a0eaf6e5e1305b9004dce5c0ed7fe59a35608f33837c816d80b79f461
383 curve ansi-c2onb239v1 binnorm
384 p 0x800000000000000000000000000000000000000000000000001000000001
385 beta 0x3b5ce9846911b248f9347018a7ac8cce3662cee952ba45becd02d4b903ec
386 a 0x182dd45f5d470239b8983fea47b8b292641c57f9bf84baecde8bb3adce30
387 b 0x147a9c1d4c2ce9be5d34ec02797f76667ebad5a3f93fa2a524bfde91ef28
388 r 0x200000000000000000000000000000474f7e69f42fe430931d0b455aae8b
389 h 4
390 gx 0x4912ad657f1d1c6b32edb9942c95e226b06fb012cd40fdea0d72197c8104
391 gy 0x01f1fbc3d21168fd3f66c441c2b5c6cfdcd9ed3e13646b7a4db9a3b0c286
392 curve ansi-c2onb239v2 binnorm
393 p 0x800000000000000000000000000000000000000000000000001000000001
394 beta 0x3b5ce9846911b248f9347018a7ac8cce3662cee952ba45becd02d4b903ec
395 a 0x1ecf1b9d28d8017505e17475d3df2982e243ca5cb5e9f94a3f36124a486e
396 b 0x3ee257250d1a2e66cef23aa0f25b12388de8a10ff9554f90afbaa9a08b6d
397 r 0x1555555555555555555555555555558cf77a5d0589d2a9340d963b7ad703
398 h 6
399 gx 0x5f949ccb694f26b96d191e8925205a719929e93c37174cb6c7f659a37b85
400 gy 0x2d788d605ac81069e9964fd6edbae8bbf582a5c409a1078cf487a147ceb2
401 ## The spec seems bogus: the suggested base point G isn't in the
402 ## subgroup! The point above is h G.
403 ##gx 0x193279fc543e9f5f7119189785b9c60b249be4820baf6c24bdfa2813f8b8
404 ##gy 0x5da021e5af77604051fc5c38da8293c1eeeaa00f046eeb93b6c8b774bb9b
405
406 curve ansi-c2tnb359v1 binpoly
407 p 0x800000000000000000000000000000000000000000000000000000000000000000000000100000000000000001
408 a 0x5667676a654b20754f356ea92017d946567c46675556f19556a04616b567d223a5e05656fb549016a96656a557
409 b 0x2472e2d0197c49363f1fe7f5b6db075d52b6947d135d8ca445805d39bc345626089687742b6329e70680231988
410 r 0x01af286bca1af286bca1af286bca1af286bca1af286bc9fb8f6b85c556892c20a7eb964fe7719e74f490758d3b
411 h 76
412 gx 0x3c258ef3047767e7ede0f1fdaa79daee3841366a132e163aced4ed2401df9c6bdcde98e8e707c07a2239b1b097
413 gy 0x53d7e08529547048121e9c95f3791dd804963948f34fae7bf44ea82365dc7868fe57e4ae2de211305a407104bd
414
415 curve ansi-c2tnb431v1 binpoly
416 p 0x800000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000001
417 a 0x1a827ef00dd6fc0e234caf046c6a5d8a85395b236cc4ad2cf32a0cadbdc9ddf620b0eb9906d0957f6c6feacd615468df104de296cd8f
418 b 0x10d9b4a3d9047d8b154359abfb1b7f5485b04ceb868237ddc9deda982a679a5a919b626d4e50a8dd731b107a9962381fb5d807bf2618
419 r 0x000340340340340340340340340340340340340340340340340340340323c313fab50589703b5ec68d3587fec60d161cc149c1ad4a91
420 h 10080
421 gx 0x120fc05d3c67a99de161d2f4092622feca701be4f50f4758714e8a87bbf2a658ef8c21e7c5efe965361f6c2999c0c247b0dbd70ce6b7
422 gy 0x20d0af8903a96f8d5fa2c255745d3c451b302c9346d9b7e485e7bce41f6b591f3e8f6addcbb0bc4c2f947a7de1a89b625d6a598b3760
423
424 # These curves aren't included because their degree isn't prime (so they
425 # may be vulnerable to Weil descent)
426 # ansi-c2pnb176w1 is bad: 176 isn't prime
427 # ansi-c2pnb208v1 is bad: 208 isn't prime
428 # ansi-c2pnb272w1 is bad: 272 isn't prime
429 # ansi-c2pnb304w1 is bad: 304 isn't prime
430 # ansi-c2pnb368w1 is bad: 368 isn't prime
431
432 alias ansi-prime192v1 secp192r1
433 curve ansi-prime192v2 niceprime
434 p 0xfffffffffffffffffffffffffffffffeffffffffffffffff
435 a 0xfffffffffffffffffffffffffffffffefffffffffffffffc
436 b 0xcc22d6dfb95c6b25e49c0d6364a4e5980c393aa21668d953
437 r 0xfffffffffffffffffffffffe5fb1a724dc80418648d8dd31
438 h 1
439 gx 0xeea2bae7e1497842f2de7769cfe9c989c072ad696f48034a
440 gy 0x6574d11d69b6ec7a672bb82a083df2f2b0847de970b2de15
441 curve ansi-prime192v3 niceprime
442 p 0xfffffffffffffffffffffffffffffffeffffffffffffffff
443 a 0xfffffffffffffffffffffffffffffffefffffffffffffffc
444 b 0x22123dc2395a05caa7423daeccc94760a7d462256bd56916
445 r 0xffffffffffffffffffffffff7a62d031c83f4294f640ec13
446 h 1
447 gx 0x7d29778100c65a1da1783716588dce2b8b4aee8e228f1896
448 gy 0x38a90f22637337334b49dcb66a6dc8f9978aca7648a943b0
449
450 curve ansi-prime239v1 niceprime
451 p 0x7fffffffffffffffffffffff7fffffffffff8000000000007fffffffffff
452 a 0x7fffffffffffffffffffffff7fffffffffff8000000000007ffffffffffc
453 b 0x6b016c3bdcf18941d0d654921475ca71a9db2fb27d1d37796185c2942c0a
454 r 0x7fffffffffffffffffffffff7fffff9e5e9a9f5d9071fbd1522688909d0b
455 h 1
456 gx 0x0ffa963cdca8816ccc33b8642bedf905c3d358573d3f27fbbd3b3cb9aaaf
457 gy 0x7debe8e4e90a5dae6e4054ca530ba04654b36818ce226b39fccb7b02f1ae
458 curve ansi-prime239v2 niceprime
459 p 0x7fffffffffffffffffffffff7fffffffffff8000000000007fffffffffff
460 a 0x7fffffffffffffffffffffff7fffffffffff8000000000007ffffffffffc
461 b 0x617fab6832576cbbfed50d99f0249c3fee58b94ba0038c7ae84c8c832f2c
462 r 0x7fffffffffffffffffffffff800000cfa7e8594377d414c03821bc582063
463 h 1
464 gx 0x38af09d98727705120c921bb5e9e26296a3cdcf2f35757a0eafd87b830e7
465 gy 0x5b0125e4dbea0ec7206da0fc01d9b081329fb555de6ef460237dff8be4ba
466 curve ansi-prime239v3 niceprime
467 p 0x7fffffffffffffffffffffff7fffffffffff8000000000007fffffffffff
468 a 0x7fffffffffffffffffffffff7fffffffffff8000000000007ffffffffffc
469 b 0x255705fa2a306654b1f4cb03d6a750a30c250102d4988717d9ba15ab6d3e
470 r 0x7fffffffffffffffffffffff7fffff975deb41b3a6057c3c432146526551
471 h 1
472 gx 0x6768ae8e18bb92cfcf005c949aa2c6d94853d0e660bbf854b1c9505fe95a
473 gy 0x1607e6898f390c06bc1d552bad226f3b6fcfe48b6e818499af18e3ed6cf3
474
475 alias ansi-prime256v1 secp256r1
476
477 #----- Curves from ANSI X9.63 -----------------------------------------------
478 #
479 # These are just duplicates of the SEC curves.
480
481 alias ansit163k1 sect163k1
482 alias ansit163r1 sect163r1
483 alias ansit163r2 sect163r2
484 alias ansit193r1 sect193r1
485 alias ansit193r2 sect193r2
486 alias ansit233k1 sect233k1
487 alias ansit233r1 sect233r1
488 alias ansit239k1 sect239k1
489 alias ansit283k1 sect283k1
490 alias ansit283r1 sect283r1
491 alias ansit409k1 sect409k1
492 alias ansit409r1 sect409r1
493 alias ansit571k1 sect571k1
494 alias ansit571r1 sect571r1
495
496 alias ansip160k1 secp160k1
497 alias ansip160r1 secp160r1
498 alias ansip160r2 secp160r2
499 alias ansip192k1 secp192k1
500 alias ansip192r1 secp192r1
501 alias ansip224k1 secp224k1
502 alias ansip224r1 secp224r1
503 alias ansip256k1 secp256k1
504 alias ansip256r1 secp256r1
505 alias ansip384r1 secp384r1
506 alias ansip521r1 secp521r1
507
508 #----- Curves from RFC2414 (Oakley) -----------------------------------------
509 #
510 # The Oakley curves are not good:
511 # oakley155 has too large a cofactor
512 # oakley185's field has composite degree
513 # Hence, we include neither here.
514
515 #----- NIST curves from FIPS186-2 -------------------------------------------
516 #
517 # These are duplicates of SEC2 curves. However, the normal basis
518 # representations aren't in SEC, so we give them here. (Conversion factors
519 # from FIPS186-2.
520
521 alias nist-p192 secp192r1
522 alias nist-p224 secp224r1
523 alias nist-p256 secp256r1
524 alias nist-p384 secp384r1
525 alias nist-p521 secp521r1
526
527 alias nist-k163 sect163k1
528 alias nist-k233 sect233k1
529 alias nist-k283 sect283k1
530 alias nist-k409 sect409k1
531 alias nist-k571 sect571k1
532
533 alias nist-b163 sect163r2
534 alias nist-b233 sect233r1
535 alias nist-b283 sect283r1
536 alias nist-b409 sect409r1
537 alias nist-b571 sect571r1
538
539 curve nist-k163n binnorm
540 p 0x800000000000000000000000000000000000000c9
541 beta 0x715169c109c612e390d347c748342bcd3b02a0bef
542 a 0x7ffffffffffffffffffffffffffffffffffffffff
543 b 0x7ffffffffffffffffffffffffffffffffffffffff
544 r 0x04000000000000000000020108a2e0cc0d99f8a5ef
545 h 2
546 gx 0x05679b353caa46825fea2d3713ba450da0c2a4541
547 gy 0x235b7c6710050689906bac3d9dec76a835591edb2
548 curve nist-b163n binnorm
549 p 0x800000000000000000000000000000000000000c9
550 beta 0x715169c109c612e390d347c748342bcd3b02a0bef
551 a 0x7ffffffffffffffffffffffffffffffffffffffff
552 b 0x6645f3cacf1638e139c6cd13ef61734fbc9e3d9fb
553 r 0x040000000000000000000292fe77e70c12a4234c33
554 h 2
555 gx 0x0311103c17167564ace77ccb09c681f886ba54ee8
556 gy 0x333ac13c6447f2e67613bf7009daf98c87bb50c7f
557
558 curve nist-k233n binnorm
559 p 0x20000000000000000000000000000000000000004000000000000000001
560 beta 0x1499e398ac5d79e368559b35ca49bb7305da6c0390bcf9e2300253203c9
561 a 0
562 b 0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
563 r 0x8000000000000000000000000000069d5bb915bcd46efb1ad5f173abdf
564 h 4
565 gx 0x0fde76d9dcd26e643ac26f1aa901aa129784b71fc0722b2d05614d650b3
566 gy 0x0643e317633155c9e0447ba8020a3c43177450ee036d633501434cac978
567 curve nist-b233n binnorm
568 p 0x20000000000000000000000000000000000000004000000000000000001
569 beta 0x1499e398ac5d79e368559b35ca49bb7305da6c0390bcf9e2300253203c9
570 a 0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
571 b 0x1a003e0962d4f9a8e407c904a9538163adb825212600c7752ad52233279
572 r 0x01000000000000000000000000000013e974e72f8a6922031d2603cfe0d7
573 h 2
574 gx 0x18b863524b3cdfefb94f2784e0b116faac54404bc9162a363bab84a14c5
575 gy 0x04925df77bd8b8ff1a5ff519417822bfedf2bbd752644292c98c7af6e02
576
577 curve nist-k283n binnorm
578 p 0x800000000000000000000000000000000000000000000000000000000000000000010a1
579 beta 0x31e0ed791c3282dc5624a720818049d053e8c7ab8663792bc1d792eba9867fc7b317a99
580 a 0
581 b 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
582 r 0x01ffffffffffffffffffffffffffffffffffe9ae2ed07577265dff7f94451e061e163c61
583 h 4
584 gx 0x3ab9593f8db09fc188f1d7c4ac9fcc3e57fcd3bdb15024b212c70229de5fcd92eb0ea60
585 gy 0x2118c4755e7345cd8f603ef93b98b106fe8854ffeb9a3b304634cc83a0e759f0c2686b1
586 curve nist-b283n binnorm
587 p 0x800000000000000000000000000000000000000000000000000000000000000000010a1
588 beta 0x31e0ed791c3282dc5624a720818049d053e8c7ab8663792bc1d792eba9867fc7b317a99
589 a 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
590 b 0x157261b894739fb5a13503f55f0b3f10c5601166633102201138cc180c0206bdafbc951
591 r 0x03ffffffffffffffffffffffffffffffffffef90399660fc938a90165b042a7cefadb307
592 h 2
593 gx 0x749468e464ee468634b21f7f61cb700701817e6bc36a2364cb8906e940948eaa463c35d
594 gy 0x62968bd3b489ac5c9b859da68475c315bafcdc4ccd0dc905b70f62446f49c052f49c08c
595
596 curve nist-k409n binnorm
597 p 0x2000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000001
598 beta 0x0dfa06be206aa97b7a41fffb9b0c55f8f048062fbe8381b4248adf92912ccc8e3f91a24e1cfb3950532b988971c23042e85708d
599 a 0
600 b 0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
601 r 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffe5f83b2d4ea20400ec4557d5ed3e3e7ca5b4b5c83b8e01e5fcf
602 h 4
603 gx 0x1b559c7cba2422e3affe13343e808b55e012d726ca0b7e6a63aeafbc1e3a98e10ca0fcf98350c3b7f89a9754a8e1dc0713cec4a
604 gy 0x16d8c42052f07e7713e7490eff318ba1abd6fef8a5433c894b24f5c817aeb79852496fbee803a47bc8a203878ebf1c499afd7d6
605 curve nist-b409n binnorm
606 p 0x2000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000001
607 beta 0x0dfa06be206aa97b7a41fffb9b0c55f8f048062fbe8381b4248adf92912ccc8e3f91a24e1cfb3950532b988971c23042e85708d
608 a 0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
609 b 0x124d0651c3d3772f7f5a1fe6e715559e2129bdfa04d52f7b6ac7c532cf0ed06f610072d88ad2fdcc50c6fde72843670f8b3742a
610 r 0x010000000000000000000000000000000000000000000000000001e2aad6a612f33307be5fa47c3c9e052f838164cd37d9a21173
611 h 2
612 gx 0x0ceacbc9f475767d8e69f3b5dfab39813685262bcacf22b84c7b6dd981899e7318c96f0761f77c602c016ced7c548de830d708f
613 gy 0x199d64ba8f089c6db0e0b61e80bb95934afd0caf2e8be76d1c5e9affc7476df49142691ad30390288aa09bcc59c1573aa3c009a
614
615 curve nist-k571n binnorm
616 p 0x80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000425
617 beta 0x452186bbf5840a0bcf8c9f02a54efa04e813b43c3d4149606c4d27b487bf107393c8907f79d9778beb35ee87467d3288274caebda6ce05aeb4ca5cf3c3044bd4372232f2c1a27c4
618 a 0
619 b 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
620 r 0x020000000000000000000000000000000000000000000000000000000000000000000000131850e1f19a63e4b391a8db917f4138b630d84be5d639381e91deb45cfe778f637c1001
621 h 4
622 gx 0x04bb2dba418d0db107adae003427e5d7cc139acb465e5934f0bea2ab2f3622bc29b3d5b9aa7a1fdfd5d8be66057c1008e71e484bcd98f22bf8476423767367429ef2ec5bc3ebcf7
623 gy 0x44cbb57de20788d2c952d7b56cf39bd3e89b18984bd124e751ceff4369dd8dac6a59e6e745df44d8220ce22aa2c852cfcbbef49ebaa98bd2483e33180e04286feaa253050caff60
624 curve nist-b571n binnorm
625 p 0x80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000425
626 beta 0x452186bbf5840a0bcf8c9f02a54efa04e813b43c3d4149606c4d27b487bf107393c8907f79d9778beb35ee87467d3288274caebda6ce05aeb4ca5cf3c3044bd4372232f2c1a27c4
627 a 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
628 b 0x3762d0d47116006179da35688eeaccf591a5cdea75000118d9608c59132d43426101a1dfb3774115f586623f75f00001ce611983c1275fa31f5bc9f4be1a0f467f01ca885c74777
629 r 0x03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe661ce18ff55987308059b186823851ec7dd9ca1161de93d5174d66e8382e9bb2fe84e47
630 h 2
631 gx 0x0735e035def5925cc33173eb2a8ce7767522b466d278b650a2916127dfea9d2d361089f0a7a0247a184e1c70d417866e0fe0feb0ff8f2f3f9176418f97d117e624e2015df1662a8
632 gy 0x04a36420572616cdf7e606fccadaecfc3b76dab0eb1248dd03fbdfc9cd3242c4726be579855e812de7ec5c500b4576a24628048b6a72d880062eed0dd34b1096d3acbb6b01a4a97
633
634 #----- That's all, folks-----------------------------------------------------