chiark / gitweb /
math/...: Make a number of functions be const-correct.
[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 #----- Curves from Brainpool ------------------------------------------------
635 #
636 # These are from http://www.ecc-brainpool.org/download/draft-lochter-pkix-brainpool-ecc-00.txt
637
638 curve brainpool-p160r1 prime
639   p 0xe95e4a5f737059dc60dfc7ad95b3d8139515620f
640   a 0x340e7be2a280eb74e2be61bada745d97e8f7c300
641   b 0x1e589a8595423412134faa2dbdec95c8d8675e58
642   r 0xe95e4a5f737059dc60df5991d45029409e60fc09
643   h 1
644   gx 0xbed5af16ea3f6a4f62938c4631eb5af7bdbcdbc3
645   gy 0x1667cb477a1a8ec338f94741669c976316da6321
646
647 curve brainpool-p160t1 prime
648   #Z 0x24dbff5dec9b986bbfe5295a29bfbae45e0f5d0b
649   p 0xe95e4a5f737059dc60dfc7ad95b3d8139515620f
650   a 0xe95e4a5f737059dc60dfc7ad95b3d8139515620c
651   b 0x7a556b6dae535b7b51ed2c4d7daa7a0b5c55f380
652   r 0xe95e4a5f737059dc60df5991d45029409e60fc09
653   h 1
654   gx 0xb199b13b9b34efc1397e64baeb05acc265ff2378
655   gy 0xadd6718b7c7c1961f0991b842443772152c9e0ad
656
657 curve brainpool-p192r1 prime
658   p 0xc302f41d932a36cda7a3463093d18db78fce476de1a86297
659   a 0x6a91174076b1e0e19c39c031fe8685c1cae040e5c69a28ef
660   b 0x469a28ef7c28cca3dc721d044f4496bcca7ef4146fbf25c9
661   r 0xc302f41d932a36cda7a3462f9e9e916b5be8f1029ac4acc1
662   h 1
663   gx 0xc0a0647eaab6a48753b033c56cb0f0900a2f5c4853375fd6
664   gy 0x14b690866abd5bb88b5f4828c1490002e6773fa2fa299b8f
665
666 curve brainpool-p192t1 prime
667   #Z 0x1b6f5cc8db4dc7af19458a9cb80dc2295e5eb9c3732104cb
668   p 0xc302f41d932a36cda7a3463093d18db78fce476de1a86297
669   a 0xc302f41d932a36cda7a3463093d18db78fce476de1a86294
670   b 0x13d56ffaec78681e68f9deb43b35bec2fb68542e27897b79
671   r 0xc302f41d932a36cda7a3462f9e9e916b5be8f1029ac4acc1
672   h 1
673   gx 0x3ae9e58c82f63c30282e1fe7bbf43fa72c446af6f4618129
674   gy 0x97e2c5667c2223a902ab5ca449d0084b7e5b3de7ccc01c9
675
676 curve brainpool-p224r1 prime
677   p 0xd7c134aa264366862a18302575d1d787b09f075797da89f57ec8c0ff
678   a 0x68a5e62ca9ce6c1c299803a6c1530b514e182ad8b0042a59cad29f43
679   b 0x2580f63ccfe44138870713b1a92369e33e2135d266dbb372386c400b
680   r 0xd7c134aa264366862a18302575d0fb98d116bc4b6ddebca3a5a7939f
681   h 1
682   gx 0xd9029ad2c7e5cf4340823b2a87dc68c9e4ce3174c1e6efdee12c07d
683   gy 0x58aa56f772c0726f24c6b89e4ecdac24354b9e99caa3f6d3761402cd
684
685 curve brainpool-p224t1 prime
686   #Z 0x2df271e14427a346910cf7a2e6cfa7b3f484e5c2cce1c8b730e28b3f
687   p 0xd7c134aa264366862a18302575d1d787b09f075797da89f57ec8c0ff
688   a 0xd7c134aa264366862a18302575d1d787b09f075797da89f57ec8c0fc
689   b 0x4b337d934104cd7bef271bf60ced1ed20da14c08b3bb64f18a60888d
690   r 0xd7c134aa264366862a18302575d0fb98d116bc4b6ddebca3a5a7939f
691   h 1
692   gx 0x6ab1e344ce25ff3896424e7ffe14762ecb49f8928ac0c76029b4d580
693   gy 0x374e9f5143e568cd23f3f4d7c0d4b1e41c8cc0d1c6abd5f1a46db4c
694
695 curve brainpool-p256r1 prime
696   p 0xa9fb57dba1eea9bc3e660a909d838d726e3bf623d52620282013481d1f6e5377
697   a 0x7d5a0975fc2c3057eef67530417affe7fb8055c126dc5c6ce94a4b44f330b5d9
698   b 0x26dc5c6ce94a4b44f330b5d9bbd77cbf958416295cf7e1ce6bccdc18ff8c07b6
699   r 0xa9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e82974856a7
700   h 1
701   gx 0x8bd2aeb9cb7e57cb2c4b482ffc81b7afb9de27e1e3bd23c23a4453bd9ace3262
702   gy 0x547ef835c3dac4fd97f8461a14611dc9c27745132ded8e545c1d54c72f046997
703
704 curve brainpool-p256t1 prime
705   #Z 0x3e2d4bd9597b58639ae7aa669cab9837cf5cf20a2c852d10f655668dfc150ef0
706   p 0xa9fb57dba1eea9bc3e660a909d838d726e3bf623d52620282013481d1f6e5377
707   a 0xa9fb57dba1eea9bc3e660a909d838d726e3bf623d52620282013481d1f6e5374
708   b 0x662c61c430d84ea4fe66a7733d0b76b7bf93ebc4af2f49256ae58101fee92b04
709   r 0xa9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e82974856a7
710   h 1
711   gx 0xa3e8eb3cc1cfe7b7732213b23a656149afa142c47aafbc2b79a191562e1305f4
712   gy 0x2d996c823439c56d7f7b22e14644417e69bcb6de39d027001dabe8f35b25c9be
713
714 curve brainpool-p320r1 prime
715   p 0xd35e472036bc4fb7e13c785ed201e065f98fcfa6f6f40def4f92b9ec7893ec28fcd412b1f1b32e27
716   a 0x3ee30b568fbab0f883ccebd46d3f3bb8a2a73513f5eb79da66190eb085ffa9f492f375a97d860eb4
717   b 0x520883949dfdbc42d3ad198640688a6fe13f41349554b49acc31dccd884539816f5eb4ac8fb1f1a6
718   r 0xd35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c59311
719   h 1
720   gx 0x43bd7e9afb53d8b85289bcc48ee5bfe6f20137d10a087eb6e7871e2a10a599c710af8d0d39e20611
721   gy 0x14fdd05545ec1cc8ab4093247f77275e0743ffed117182eaa9c77877aaac6ac7d35245d1692e8ee1
722
723 curve brainpool-p320t1 prime
724   #Z 0x15f75caf668077f7e85b42eb01f0a81ff56ecd6191d55cb82b7d861458a18fefc3e5ab7496f3c7b1
725   p 0xd35e472036bc4fb7e13c785ed201e065f98fcfa6f6f40def4f92b9ec7893ec28fcd412b1f1b32e27
726   a 0xd35e472036bc4fb7e13c785ed201e065f98fcfa6f6f40def4f92b9ec7893ec28fcd412b1f1b32e24
727   b 0xa7f561e038eb1ed560b3d147db782013064c19f27ed27c6780aaf77fb8a547ceb5b4fef422340353
728   r 0xd35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c59311
729   h 1
730   gx 0x925be9fb01afc6fb4d3e7d4990010f813408ab106c4f09cb7ee07868cc136fff3357f624a21bed52
731   gy 0x63ba3a7a27483ebf6671dbef7abb30ebee084e58a0b077ad42a5a0989d1ee71b1b9bc0455fb0d2c3
732
733 curve brainpool-p384r1 prime
734   p 0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b412b1da197fb71123acd3a729901d1a71874700133107ec53
735   a 0x7bc382c63d8c150c3c72080ace05afa0c2bea28e4fb22787139165efba91f90f8aa5814a503ad4eb04a8c7dd22ce2826
736   b 0x4a8c7dd22ce28268b39b55416f0447c2fb77de107dcd2a62e880ea53eeb62d57cb4390295dbc9943ab78696fa504c11
737   r 0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e9046565
738   h 1
739   gx 0x1d1c64f068cf45ffa2a63a81b7c13f6b8847a3e77ef14fe3db7fcafe0cbd10e8e826e03436d646aaef87b2e247d4af1e
740   gy 0x8abe1d7520f9c2a45cb1eb8e95cfd55262b70b29feec5864e19c054ff99129280e4646217791811142820341263c5315
741
742 curve brainpool-p384t1 prime
743   #Z 0x41dfe8dd399331f7166a66076734a89cd0d2bcdb7d068e44e1f378f41ecbae97d2d63dbc87bccddccc5da39e8589291c
744   p 0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b412b1da197fb71123acd3a729901d1a71874700133107ec53
745   a 0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b412b1da197fb71123acd3a729901d1a71874700133107ec50
746   b 0x7f519eada7bda81bd826dba647910f8c4b9346ed8ccdc64e4b1abd11756dce1d2074aa263b88805ced70355a33b471ee
747   r 0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e9046565
748   h 1
749   gx 0x18de98b02db9a306f2afcd7235f72a819b80ab12ebd653172476fecd462aabffc4ff191b946a5f54d8d0aa2f418808cc
750   gy 0x25ab056962d30651a114afd2755ad336747f93475b7a1fca3b88f2b6a208ccfe469408584dc2b2912675bf5b9e582928
751
752 curve brainpool-p512r1 prime
753   p 0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca703308717d4d9b009bc66842aecda12ae6a380e62881ff2f2d82c68528aa6056583a48f3
754   a 0x7830a3318b603b89e2327145ac234cc594cbdd8d3df91610a83441caea9863bc2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a72bf2c7b9e7c1ac4d77fc94ca
755   b 0x3df91610a83441caea9863bc2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a72bf2c7b9e7c1ac4d77fc94cadc083e67984050b75ebae5dd2809bd638016f723
756   r 0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca90069
757   h 1
758   gx 0x81aee4bdd82ed9645a21322e9c4c6a9385ed9f70b5d916c1b43b62eef4d0098eff3b1f78e2d0d48d50d1687b93b97d5f7c6d5047406a5e688b352209bcb9f822
759   gy 0x7dde385d566332ecc0eabfa9cf7822fdf209f70024a57b1aa000c55b881f8111b2dcde494a5f485e5bca4bd88a2763aed1ca2b2fa8f0540678cd1e0f3ad80892
760
761 curve brainpool-p512t1 prime
762   #Z 0x12ee58e6764838b69782136f0f2d3ba06e27695716054092e60a80bedb212b64e585d90bce13761f85c3f1d2a64e3be8fea2220f01eba5eeb0f35dbd29d922ab
763   p 0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca703308717d4d9b009bc66842aecda12ae6a380e62881ff2f2d82c68528aa6056583a48f3
764   a 0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca703308717d4d9b009bc66842aecda12ae6a380e62881ff2f2d82c68528aa6056583a48f0
765   b 0x7cbbbcf9441cfab76e1890e46884eae321f70c0bcb4981527897504bec3e36a62bcdfa2304976540f6450085f2dae145c22553b465763689180ea2571867423e
766   r 0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca90069
767   h 1
768   gx 0x640ece5c12788717b9c1ba06cbc2a6feba85842458c56dde9db1758d39c0313d82ba51735cdb3ea499aa77a7d6943a64f7a3f25fe26f06b51baa2696fa9035da
769   gy 0x5b534bd595f5af0fa2c892376c84ace1bb4e3019b71634c01131159cae03cee9d9932184beef216bd71df2dadf86a627306ecff96dbb8bace198b61e00f8b332
770
771 #----- BADA55 curves --------------------------------------------------------
772 #
773 # These are from http://safecurves.cr.yp.to/bada55.html.  The twist security
774 # properties actually seem useful, so I'm including them here, despite the
775 # fact that they were obviously made primarily to make a point about
776 # `verifiably random' curves.
777 #
778 # I've had to choose generators myself; in each case, I chose the smallest
779 # possible x-coordinate, and the smaller possible y-coordinate for that x.
780
781 curve bada55-vr-224 niceprime
782   p 0xffffffffffffffffffffffffffffffff000000000000000000000001
783   a 0xfffffffffffffffffffffffffffffffefffffffffffffffffffffffe
784   b 0xfd9ca54c0738b8a6fb8cf4cdb328e75983d6da1b78b6223463375562
785   r 0xffffffffffffffffffffffffffff0d44ef1096b2b67b7a3dcee7b079
786   h 1
787   gx 3
788   gy 0x32e826f050bdf4c3f4292fa4efa50146b0fd3f342da5e081badbc36c
789
790 curve bada55-vpr-224 niceprime
791   p 0xffffffffffffffffffffffffffffffff000000000000000000000001
792   a 0x8110b017fda88a224f3f64f3964926308dec9784b13c08f09f4ffc4a
793   b 0x5587342f92ba3091a9ba09ad867f4cef85778edb831054f9cb5b3ed5
794   r 0xffffffffffffffffffffffffffff473fa5d3e9bf40a95a8d3f014add
795   h 1
796   gx 0
797   gy 0x5bf50773d4af0f3caba87919b7504fcbd4549f9f845d19aa369dbabe
798
799 curve bada55-vpt-224 niceprime
800   # The page doesn't provide an isomorphic curve with a = -3, which is
801   # unsurprising because (unlike the real Brainpool curves) there isn't one.
802   # So this is the quadratic twist of BADA55-VPR-224, which (by construction)
803   # also has prime order.
804   #Z sqrt(39bef747a58ef82f6d337dd7dfd37641688b10cacfbd45448673c6dd)
805   p 0xffffffffffffffffffffffffffffffff000000000000000000000001
806   a 0xfffffffffffffffffffffffffffffffefffffffffffffffffffffffe
807   b 0x3c1f1d26b674d3a1a0a34a808decd83dea4fd207b9896a88031ef63a
808   r 0x10000000000000000000000000000b8be5a2c1640bf56a572c0feb527
809   h 1
810   gx 3
811   gy 0x2df5bbdfd22559ee826d7d3ce60914e4f8609579eddd3c0a07dff90c
812
813 curve bada55-vr-256 niceprime
814   p 0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff
815   a 0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc
816   b 0xbada55ecd8bbead3add6c534f92197deb47fceb9be7e0e702a8d1dd56b5d0b0c
817   r 0xffffffff00000000fffffffffffffffebedc2797003336661a49d76a903bdb91
818   h 1
819   gx 0
820   gy 0x5310d24619c2e5b721e14dcedc3332d0be3ce9347161ebbc14a43fc7fad546d2
821
822 curve bada55-vr-384 niceprime
823   p 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
824   a 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc
825   b 0xbada55ec3be2ad1f9eeea5881ecf95bbf3ac392526f01d4cd13e684c63a17cc4d5f271642ad83899113817a61006413d
826   r 0xfffffffffffffffffffffffffffffffffffffffffffffffeefe1169b82ff7e5032c683f766fae57359cfc5fc25ffce37
827   h 1
828   gx 2
829   gy 0x37d4cb922a8a155845ae2b2884c788a01a22fbf621a7918dc1f18a89fad6df0ab3169acfa538eb7c6c1c9cda7cfb5023
830
831 #----- That's all, folks-----------------------------------------------------