1/*
2 * curveParamDataOld.h - prototype FEE curve parameters (obsolete as of 4/9/2001)
3 */
4#warning Using obsolete curveParam data!
5/*
6 * q = 31   k = 1,  Weierstrass
7 * a = 7    b = 1   c = 0
8 */
9static arrayDigit ga_w31_1_a[] = {1, 7};
10static arrayDigit ga_w31_1_x1Plus[]   =
11	{2,15438,14404};
12	/* 943995982 */
13static arrayDigit ga_w31_1_x1Minus[]  =
14	{2, 10400, 19905};
15	/* 1304504480 */
16static arrayDigit ga_w31_1_plusOrder[]  =
17	{2, 3848, 32769};
18	/* 2147553032 */
19static arrayDigit ga_w31_1_minusOrder[]  =
20	{2, 61688, 32766 };
21	/* 2147414264 */
22static arrayDigit ga_w31_1_x1OrderPlus[] =
23	{2, 8673, 4096};
24	/* 268444129 */
25static arrayDigit ga_w31_1_x1OrderMinus[]  =
26	{2, 56863, 4095 };
27	/* 268426783 */
28static arrayDigit ga_w31_1_x1OrderPlusRecip[]  =
29	{2, 30845, 16383};
30static arrayDigit ga_w31_1_lesserX1OrderRecip[]  =
31	{2, 8673, 4096};
32
33/*
34 * q = 31   k = 1,  Montgomery
35 * a = 1    b = 0   c = 666
36 */
37static arrayDigit ga_m31_1_x1Plus[]   =
38	{2, 61780, 6237};
39	/* 408809812 */
40static arrayDigit ga_m31_1_x1Minus[]  =
41	{2,12973,30585};
42	/* 2004431533 */
43static arrayDigit ga_m31_1_plusOrder[]  =
44	{2, 25928, 32768 };
45	/* 2147509576 */
46static arrayDigit ga_m31_1_minusOrder[]  =
47	{2, 39608, 32767 };
48	/* 2147457720 */
49static arrayDigit ga_m31_1_x1OrderPlus[] =
50	{2, 3241, 4096};
51	/* 268438697 */
52static arrayDigit ga_m31_1_x1OrderMinus[]  =
53	{2, 4153, 273};
54	/* 17895481 */
55static arrayDigit ga_m31_1_x1OrderPlusRecip[]  =
56	{2, 52572, 16383};
57static arrayDigit ga_m31_1_lesserX1OrderRecip[]  =
58	{2, 759, 960};
59
60/*
61 * q = 31   k = 1,  Montgomery, prime curve orders
62 * a = 5824692    b = 2067311435   c = 0
63 */
64static arrayDigit ga_31_1P_x1Plus[]   =
65	{1, 6 };
66static arrayDigit ga_31_1P_x1Minus[]  =
67	{1, 7 };
68static arrayDigit ga_31_1P_plusOrder[]  =
69	{2,59003,32766 };
70	/* 2147411579 */
71static arrayDigit ga_31_1P_minusOrder[]  =
72	{2,6533,32769 };
73	/* 2147555717 */
74static arrayDigit ga_31_1P_x1OrderPlus[] =
75	{2,59003,32766};
76	/* 2147411579 */
77static arrayDigit ga_31_1P_x1OrderMinus[]  =
78	{2,6533,32769};
79	/* 2147555717 */
80static arrayDigit ga_31_1P_x1OrderPlusRecip[]  =
81	{2, 6535, 32769};
82
83static arrayDigit ga_31_1P_a[]  =
84	{2,57524,88};
85	/* 5824692 */
86static arrayDigit ga_31_1P_b[]  =
87	{2,43851,31544};
88	/* 2067311435 */
89
90/*
91 * q = 40   k = 213,  Weierstrass
92 * a = 1627500953    b = 523907505   c = 0
93 */
94static arrayDigit ga_40_213_x1Plus[]   =
95	{1, 1 };
96static arrayDigit ga_40_213_x1Minus[]  =
97	{1, 2 };
98static arrayDigit ga_40_213_plusOrder[]  =
99	{3,11655,25,256};
100	/* 1099513277831 */
101static arrayDigit ga_40_213_minusOrder[]  =
102	{3,53457,65510,255};
103	/* 1099509977297 */
104static arrayDigit ga_40_213_x1OrderPlus[] =
105	{3,11655,25,256};
106	/* 1099513277831 */
107static arrayDigit ga_40_213_x1OrderMinus[]  =
108	{3,53457,65510,255};
109	/* 1099509977297 */
110static arrayDigit ga_40_213_x1OrderPlusRecip[]  =
111	{3, 18925, 65435, 1023};
112static arrayDigit ga_40_213_lesserX1OrderRecip[]  =
113	{3, 12081, 25, 256};
114
115static arrayDigit ga_40_213_a[]  =
116	{2,45465,24833};
117	/* 1627500953 */
118static arrayDigit ga_40_213_b[]  =
119	{2,12721,7994};
120	/* 523907505 */
121
122/*
123 * q = 127  k = 1
124 * a = 1    b = 0  c = 666
125 */
126static arrayDigit ga_127_1_x1Plus[]  =
127	{8,     24044, 39922, 11050,
128	 24692, 34049, 9793,  1228, 31562};
129	/* 163879370753099435779911346846180728300 */
130static arrayDigit ga_127_1_x1Minus[] =
131	{8,49015,6682,26772,63672,45560,46133,24769,8366};
132	/* 43440717976631899041527862406676135799 */
133static arrayDigit ga_127_1_plusOrder[]  =
134	{ 8,     14612, 61088, 34331,
135	  32354, 65535, 65535, 65535,
136	  32767};
137	/* 170141183460469231722347548493196835092 */
138static arrayDigit ga_127_1_minusOrder[] =
139	{ 8,     50924, 4447, 31204,
140	  33181, 0,     0,    0,
141	  32768 };
142	/* 170141183460469231741027058938571376364 */
143static arrayDigit ga_127_1_x1OrderPlus[] =
144	{6,     8201,  61942, 37082,
145	 53787, 49605, 7887 };
146	/* 9535713005180210505588285449 */
147static arrayDigit ga_127_1_x1OrderMinus[] =
148	{6,    14659, 1977,16924,
149	 7446, 49030, 1};
150	/* 2113371777483973234080067 */
151static arrayDigit ga_127_1_x1OrderPlusRecip[]  =
152	{6, 21911, 8615, 0, 40960, 64107, 8507};
153static arrayDigit ga_127_1_lesserX1OrderRecip[]  =
154	{6, 44759, 65533, 17695, 61560, 18883, 2};
155
156/*
157 * This is only used for the FEE_DEPTH_127_GEN (FPT_General) case.
158 */
159static arrayDigit ga_127_1_bp[] =
160	{8, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 32767};
161
162/*
163 * q = 127  k = 1,  Weierstrass
164 * a = 666  b = 1   c = 0
165 */
166static arrayDigit ga_127_1W_x1Plus[]  =
167	{8,     8152,  12974, 29415,
168	 29630, 64916, 34821, 65368,
169	 29317};
170	/* 152227746030289977478827896983637598168 */
171static arrayDigit ga_127_1W_x1Minus[] =
172	{8,     33297, 13207, 15262,
173	 22815, 21569, 49926, 18455,
174	 22807};
175	/* 118422176668700242826570137796135584273 */
176static arrayDigit ga_127_1W_plusOrder[]  =
177	{8,     7568,  62409, 28235,
178	 47403, 65534, 65535, 65535,
179	 32767 };
180	/* 170141183460469231708136695161971875216
181           = 2 * 2 * 2 * 2 * 11 * 17 * 47 * 103 * 10861 *
182             1081540940469355570836125423 */
183static arrayDigit ga_127_1W_minusOrder[] =
184	{8, 57968, 3126,37300, 18132, 1, 0, 0, 32768  };
185	/* 170141183460469231755237912269796336240
186           = 2 * 2 * 2 * 2 * 3 * 5 * 19 * 34267 *
187             1088851169917897274673487152937 */
188static arrayDigit ga_127_1W_x1OrderPlus[] =
189	{ 6, 46831, 48825, 15584, 56652, 41267, 894 };
190	/* 1081540940469355570836125423 */
191static arrayDigit ga_127_1W_x1OrderMinus[] =
192	{7, 1833, 34556, 10366, 60186, 37860, 48708, 13};
193	/* 1088851169917897274673487152937 */
194static arrayDigit ga_127_1W_x1OrderPlusRecip[]  =
195	{6, 48506, 2992, 0, 28160, 5127, 1172};
196
197/*
198 * q = 160   k = 57
199 * a = c = 0      b = 3
200 */
201static arrayDigit ga_160_57_x1Plus[] =
202	{10,12520,51433,52060,51310,41288,18467,39861,56172,11574,31757};
203	/* 708208703989516599321256243677211664634713026792 */
204static arrayDigit ga_160_57_x1Minus[] =
205	{10,40240,19544,56125,45242,10556,34052,10700,5155,57632,13213};
206	/* 294679357488322649182890242541447794429265485104 */
207static arrayDigit ga_160_57_plusOrder[] =
208	{11,62853,63609,4196,64365,22452,1,0,0,0,0,1};
209	/* 1461501637330902918203686455826517732113793021317 */
210static arrayDigit ga_160_57_minusOrder[] =
211	{10,2571,1926,61339,1170,43083,65534,65535,65535,65535,65535};
212	/* 1461501637330902918203683209606048307198072064523 */
213static arrayDigit ga_160_57_x1OrderPlus[] =
214	{5,171,21451,35098,934,63868};
215	/* 1178156913548056058331307 */
216static arrayDigit ga_160_57_x1OrderMinus[] =
217	{7,255,39523,10835,12387,25442,37088,9774};
218	/* 774420897524543052406523561181439 */
219static arrayDigit ga_160_57_x1OrderPlusRecip[] =
220	{6, 49805, 35001, 38758, 35853, 1711, 1};
221static arrayDigit ga_160_57_b[] = {1, 3};		/* b = (giant)3 */
222
223/*
224 * This is only used for the FEE_DEPTH_160_GEN (FPT_General) case.
225 */
226static arrayDigit ga_160_57_bp[] =
227	{10,65479,65535,65535,65535,65535,65535,65535,65535,65535,65535};
228	/* 1461501637330902918203684832716283019655932542919 */
229
230
231/*
232 * q = 192  k = 1425
233 * a = 0   b = -11  c = 0
234 */
235static arrayDigit ga_192_1425_x1Plus[]  =
236	{12,    44344, 60264, 44908,
237	 24163, 37728, 58781, 45290,
238	 62313, 45939, 59670, 20046,
239	 8781};
240	/* 841082007613983662909216085212018592355989658924032240952 */
241static arrayDigit ga_192_1425_x1Minus[] =
242	{12,32855,61817,23700,48262,13770,23791,31597,23825,7973,37638,
243	 62245,25400};
244	/* 2432927643133372385673335524462623851522707126886260637783 */
245static arrayDigit ga_192_1425_plusOrder[]  =
246	{13,    7615,  52517, 60178,
247	 40906, 43135, 27853, 1,
248	 0, 0, 0, 0, 0, 1};
249	/* 6277101735386680763835789423320567585182165941785488334271 */
250static arrayDigit ga_192_1425_minusOrder[] =
251	{12,    55073, 13018, 5357,
252	 24629, 22400, 37682, 65534,
253	 65535, 65535, 65535, 65535,
254	 65535};
255	/* 6277101735386680763835789423094765247022544947142580688673 */
256static arrayDigit ga_192_1425_x1OrderPlus[]  =
257	{11,    55217, 35908, 19375,
258	 13869, 14836, 18343, 39323,
259	 50251, 7215,  49984, 21171};
260	/* 30942565846835947234516838572438382480699614724151217 */
261static arrayDigit ga_192_1425_x1OrderMinus[] =
262	{12,    42525, 5637,  42463,
263	 55864, 53758, 3234,  41914,
264	 27439, 9168,  44294, 64393, 2};
265	/* 285673405333212613836790125294441598644816135581967901 */
266static arrayDigit ga_192_1425_x1OrderPlusRecip[]  =
267	{11, 31243, 31728, 18067,
268	 25698, 58801, 65534, 65535,
269	 65535, 65535, 49151, 50715};
270static arrayDigit ga_192_1425_b[] =    {-1, 11};	/* b = (giant)(-11) */
271
272/*
273 * q = 192  k = -529891
274 * a = -152   b = 722     c = 0
275 */
276static arrayDigit ga_192_M529891_x1Plus[]  =
277	{12,   27752, 118,   22193,
278	28093, 63505, 16219, 38086,
279	5777,  13552, 56652, 28149,
280	56180};
281	/* 5381016108938327910020782805833379575685074837329310805096 */
282static arrayDigit ga_192_M529891_x1Minus[] =
283	{12,    20031,  4376, 4872,
284	 24519, 24047, 14628, 60533,
285	 27380, 49464, 20541, 38806,
286	 59062};
287	/* 5657072442654455186533371860713762559076927475376430009919 */
288static arrayDigit ga_192_M529891_plusOrder[]  =
289	{13,    5604,  8,     0,
290	 0,     0,     0,     2,
291	 0,     0,     0,     0,
292	 0,     1};
293	/* 6277101735386680763835789423366122741130884119651122943460 */
294static arrayDigit ga_192_M529891_minusOrder[] =
295	{12,    5604,  8,     0,
296	 0,     0,     0,     65534,
297	 65535, 65535, 65535, 65535,
298	 65535};
299	/* 6277101735386680763835789423049210091073826769276947142116 */
300static arrayDigit ga_192_M529891_x1OrderPlus[]  =
301	{12,    28623, 26214, 26214,
302	 26214, 26214, 58982, 16681,
303	 4766,  10724, 40513, 58386,
304	 297};
305	/* 28532280615394003471980861015300557914231291452959649743 */
306static arrayDigit ga_192_M529891_x1OrderMinus[] =
307	{11,    18083, 10335, 12214,
308	 61896, 30741, 14099, 7255,
309	 33291, 27015, 23037, 196};
310	/* 286968072376896521631921223217092198374509106906787 */
311static arrayDigit ga_192_M529891_x1OrderPlusRecip[]  =
312	{12, 58420, 65535, 65535,
313	 65535, 65535, 63775, 65535,
314	 65535, 65535, 65535, 65535, 879};
315static arrayDigit ga_192_M529891_lesserX1OrderRecip[]  =
316	{11, 65535, 65535, 65535, 35223,
317	 667, 0, 0, 0, 0, 50380, 333};
318static arrayDigit ga_192_M529891_a[] =    {-1, 152};	/* a = -152 */
319static arrayDigit ga_192_M529891_b[] =    { 1, 722};	/* b = 722 */
320
321/*
322 * FPT_General, 161 bits
323 */
324static arrayDigit ga_161_gen_bp[] =
325	{11,41419,58349,36408,14563,25486,9098,29127,50972,7281,8647,1};
326	/* baseprime = 1654338658923174831024422729553880293604080853451 */
327static arrayDigit ga_161_gen_x1Plus[] =
328	{10,59390,38748,49144,50217,32781,46057,53816,62856,18968,55868};
329	/* 1245904487553815885170631576005220733978383542270 */
330static arrayDigit ga_161_gen_x1Minus[] =
331	{10,62588,37264,57758,58571,20023,11302,61317,50155,46534,18610};
332	/* 415032703104741702601157337572231150005648422012 */
333static arrayDigit ga_161_gen_plusOrder[] =
334	{11,41420,58349,36408,14563,25486,9100,29127,50972,7281,8647,1};
335	/* 1654338658923174831024425147405519522862430265804 */
336static arrayDigit ga_161_gen_minusOrder[] =
337	{11,41420,58349,36408,14563,25486,9096,29127,50972,7281,8647,1};
338	/* 1654338658923174831024420311702241064345731441100 */
339static arrayDigit ga_161_gen_x1OrderPlus[] =
340	{8,59671,64703,58305,55887,34170,37971,15627,197};
341	/* 1024120625531724089187207582052247831 */
342static arrayDigit ga_161_gen_x1OrderMinus[] =
343	{10,49675,56911,64364,6281,5543,59511,52057,44604,37151,2};
344	/* 57243552211874561627142571339177891499852299 */
345static arrayDigit ga_161_gen_x1OrderPlusRecip[] =
346	{8, 7566, 37898, 14581, 2404, 52670, 23839, 17554, 332};
347
348static arrayDigit ga_161_gen_a[] =    {-1, 152};	/* a = -152 */
349static arrayDigit ga_161_gen_b[] =    { 1, 722};	/* b = 722 */
350
351