xref: /netbsd-src/crypto/external/bsd/heimdal/dist/lib/hcrypto/libtommath/tommath_class.h (revision d3273b5b76f5afaafe308cead5511dbb8df8c5e9)
1 /*	$NetBSD: tommath_class.h,v 1.2 2017/01/28 21:31:47 christos Exp $	*/
2 
3 #if !(defined(LTM1) && defined(LTM2) && defined(LTM3))
4 #if defined(LTM2)
5 #define LTM3
6 #endif
7 #if defined(LTM1)
8 #define LTM2
9 #endif
10 #define LTM1
11 
12 #if defined(LTM_ALL)
13 #define BN_ERROR_C
14 #define BN_FAST_MP_INVMOD_C
15 #define BN_FAST_MP_MONTGOMERY_REDUCE_C
16 #define BN_FAST_S_MP_MUL_DIGS_C
17 #define BN_FAST_S_MP_MUL_HIGH_DIGS_C
18 #define BN_FAST_S_MP_SQR_C
19 #define BN_MP_2EXPT_C
20 #define BN_MP_ABS_C
21 #define BN_MP_ADD_C
22 #define BN_MP_ADD_D_C
23 #define BN_MP_ADDMOD_C
24 #define BN_MP_AND_C
25 #define BN_MP_CLAMP_C
26 #define BN_MP_CLEAR_C
27 #define BN_MP_CLEAR_MULTI_C
28 #define BN_MP_CMP_C
29 #define BN_MP_CMP_D_C
30 #define BN_MP_CMP_MAG_C
31 #define BN_MP_CNT_LSB_C
32 #define BN_MP_COPY_C
33 #define BN_MP_COUNT_BITS_C
34 #define BN_MP_DIV_C
35 #define BN_MP_DIV_2_C
36 #define BN_MP_DIV_2D_C
37 #define BN_MP_DIV_3_C
38 #define BN_MP_DIV_D_C
39 #define BN_MP_DR_IS_MODULUS_C
40 #define BN_MP_DR_REDUCE_C
41 #define BN_MP_DR_SETUP_C
42 #define BN_MP_EXCH_C
43 #define BN_MP_EXPT_D_C
44 #define BN_MP_EXPTMOD_C
45 #define BN_MP_EXPTMOD_FAST_C
46 #define BN_MP_EXTEUCLID_C
47 #define BN_MP_FIND_PRIME_C
48 #define BN_MP_FREAD_C
49 #define BN_MP_FWRITE_C
50 #define BN_MP_GCD_C
51 #define BN_MP_GET_INT_C
52 #define BN_MP_GROW_C
53 #define BN_MP_INIT_C
54 #define BN_MP_INIT_COPY_C
55 #define BN_MP_INIT_MULTI_C
56 #define BN_MP_INIT_SET_C
57 #define BN_MP_INIT_SET_INT_C
58 #define BN_MP_INIT_SIZE_C
59 #define BN_MP_INVMOD_C
60 #define BN_MP_INVMOD_SLOW_C
61 #define BN_MP_ISPRIME_C
62 #define BN_MP_IS_SQUARE_C
63 #define BN_MP_JACOBI_C
64 #define BN_MP_KARATSUBA_MUL_C
65 #define BN_MP_KARATSUBA_SQR_C
66 #define BN_MP_LCM_C
67 #define BN_MP_LSHD_C
68 #define BN_MP_MOD_C
69 #define BN_MP_MOD_2D_C
70 #define BN_MP_MOD_D_C
71 #define BN_MP_MONTGOMERY_CALC_NORMALIZATION_C
72 #define BN_MP_MONTGOMERY_REDUCE_C
73 #define BN_MP_MONTGOMERY_SETUP_C
74 #define BN_MP_MUL_C
75 #define BN_MP_MUL_2_C
76 #define BN_MP_MUL_2D_C
77 #define BN_MP_MUL_D_C
78 #define BN_MP_MULMOD_C
79 #define BN_MP_N_ROOT_C
80 #define BN_MP_NEG_C
81 #define BN_MP_OR_C
82 #define BN_MP_PRIME_FERMAT_C
83 #define BN_MP_PRIME_IS_DIVISIBLE_C
84 #define BN_MP_PRIME_IS_PRIME_C
85 #define BN_MP_PRIME_MILLER_RABIN_C
86 #define BN_MP_PRIME_NEXT_PRIME_C
87 #define BN_MP_PRIME_RABIN_MILLER_TRIALS_C
88 #define BN_MP_PRIME_RANDOM_EX_C
89 #define BN_MP_RADIX_SIZE_C
90 #define BN_MP_RADIX_SMAP_C
91 #define BN_MP_RAND_C
92 #define BN_MP_READ_RADIX_C
93 #define BN_MP_READ_SIGNED_BIN_C
94 #define BN_MP_READ_UNSIGNED_BIN_C
95 #define BN_MP_REDUCE_C
96 #define BN_MP_REDUCE_2K_C
97 #define BN_MP_REDUCE_2K_L_C
98 #define BN_MP_REDUCE_2K_SETUP_C
99 #define BN_MP_REDUCE_2K_SETUP_L_C
100 #define BN_MP_REDUCE_IS_2K_C
101 #define BN_MP_REDUCE_IS_2K_L_C
102 #define BN_MP_REDUCE_SETUP_C
103 #define BN_MP_RSHD_C
104 #define BN_MP_SET_C
105 #define BN_MP_SET_INT_C
106 #define BN_MP_SHRINK_C
107 #define BN_MP_SIGNED_BIN_SIZE_C
108 #define BN_MP_SQR_C
109 #define BN_MP_SQRMOD_C
110 #define BN_MP_SQRT_C
111 #define BN_MP_SUB_C
112 #define BN_MP_SUB_D_C
113 #define BN_MP_SUBMOD_C
114 #define BN_MP_TO_SIGNED_BIN_C
115 #define BN_MP_TO_SIGNED_BIN_N_C
116 #define BN_MP_TO_UNSIGNED_BIN_C
117 #define BN_MP_TO_UNSIGNED_BIN_N_C
118 #define BN_MP_TOOM_MUL_C
119 #define BN_MP_TOOM_SQR_C
120 #define BN_MP_TORADIX_C
121 #define BN_MP_TORADIX_N_C
122 #define BN_MP_UNSIGNED_BIN_SIZE_C
123 #define BN_MP_XOR_C
124 #define BN_MP_ZERO_C
125 #define BN_MP_ZERO_MULTI_C
126 #define BN_PRIME_TAB_C
127 #define BN_REVERSE_C
128 #define BN_S_MP_ADD_C
129 #define BN_S_MP_EXPTMOD_C
130 #define BN_S_MP_MUL_DIGS_C
131 #define BN_S_MP_MUL_HIGH_DIGS_C
132 #define BN_S_MP_SQR_C
133 #define BN_S_MP_SUB_C
134 #define BNCORE_C
135 #endif
136 
137 #if defined(BN_ERROR_C)
138    #define BN_MP_ERROR_TO_STRING_C
139 #endif
140 
141 #if defined(BN_FAST_MP_INVMOD_C)
142    #define BN_MP_ISEVEN_C
143    #define BN_MP_INIT_MULTI_C
144    #define BN_MP_COPY_C
145    #define BN_MP_MOD_C
146    #define BN_MP_SET_C
147    #define BN_MP_DIV_2_C
148    #define BN_MP_ISODD_C
149    #define BN_MP_SUB_C
150    #define BN_MP_CMP_C
151    #define BN_MP_ISZERO_C
152    #define BN_MP_CMP_D_C
153    #define BN_MP_ADD_C
154    #define BN_MP_EXCH_C
155    #define BN_MP_CLEAR_MULTI_C
156 #endif
157 
158 #if defined(BN_FAST_MP_MONTGOMERY_REDUCE_C)
159    #define BN_MP_GROW_C
160    #define BN_MP_RSHD_C
161    #define BN_MP_CLAMP_C
162    #define BN_MP_CMP_MAG_C
163    #define BN_S_MP_SUB_C
164 #endif
165 
166 #if defined(BN_FAST_S_MP_MUL_DIGS_C)
167    #define BN_MP_GROW_C
168    #define BN_MP_CLAMP_C
169 #endif
170 
171 #if defined(BN_FAST_S_MP_MUL_HIGH_DIGS_C)
172    #define BN_MP_GROW_C
173    #define BN_MP_CLAMP_C
174 #endif
175 
176 #if defined(BN_FAST_S_MP_SQR_C)
177    #define BN_MP_GROW_C
178    #define BN_MP_CLAMP_C
179 #endif
180 
181 #if defined(BN_MP_2EXPT_C)
182    #define BN_MP_ZERO_C
183    #define BN_MP_GROW_C
184 #endif
185 
186 #if defined(BN_MP_ABS_C)
187    #define BN_MP_COPY_C
188 #endif
189 
190 #if defined(BN_MP_ADD_C)
191    #define BN_S_MP_ADD_C
192    #define BN_MP_CMP_MAG_C
193    #define BN_S_MP_SUB_C
194 #endif
195 
196 #if defined(BN_MP_ADD_D_C)
197    #define BN_MP_GROW_C
198    #define BN_MP_SUB_D_C
199    #define BN_MP_CLAMP_C
200 #endif
201 
202 #if defined(BN_MP_ADDMOD_C)
203    #define BN_MP_INIT_C
204    #define BN_MP_ADD_C
205    #define BN_MP_CLEAR_C
206    #define BN_MP_MOD_C
207 #endif
208 
209 #if defined(BN_MP_AND_C)
210    #define BN_MP_INIT_COPY_C
211    #define BN_MP_CLAMP_C
212    #define BN_MP_EXCH_C
213    #define BN_MP_CLEAR_C
214 #endif
215 
216 #if defined(BN_MP_CLAMP_C)
217 #endif
218 
219 #if defined(BN_MP_CLEAR_C)
220 #endif
221 
222 #if defined(BN_MP_CLEAR_MULTI_C)
223    #define BN_MP_CLEAR_C
224 #endif
225 
226 #if defined(BN_MP_CMP_C)
227    #define BN_MP_CMP_MAG_C
228 #endif
229 
230 #if defined(BN_MP_CMP_D_C)
231 #endif
232 
233 #if defined(BN_MP_CMP_MAG_C)
234 #endif
235 
236 #if defined(BN_MP_CNT_LSB_C)
237    #define BN_MP_ISZERO_C
238 #endif
239 
240 #if defined(BN_MP_COPY_C)
241    #define BN_MP_GROW_C
242 #endif
243 
244 #if defined(BN_MP_COUNT_BITS_C)
245 #endif
246 
247 #if defined(BN_MP_DIV_C)
248    #define BN_MP_ISZERO_C
249    #define BN_MP_CMP_MAG_C
250    #define BN_MP_COPY_C
251    #define BN_MP_ZERO_C
252    #define BN_MP_INIT_MULTI_C
253    #define BN_MP_SET_C
254    #define BN_MP_COUNT_BITS_C
255    #define BN_MP_ABS_C
256    #define BN_MP_MUL_2D_C
257    #define BN_MP_CMP_C
258    #define BN_MP_SUB_C
259    #define BN_MP_ADD_C
260    #define BN_MP_DIV_2D_C
261    #define BN_MP_EXCH_C
262    #define BN_MP_CLEAR_MULTI_C
263    #define BN_MP_INIT_SIZE_C
264    #define BN_MP_INIT_C
265    #define BN_MP_INIT_COPY_C
266    #define BN_MP_LSHD_C
267    #define BN_MP_RSHD_C
268    #define BN_MP_MUL_D_C
269    #define BN_MP_CLAMP_C
270    #define BN_MP_CLEAR_C
271 #endif
272 
273 #if defined(BN_MP_DIV_2_C)
274    #define BN_MP_GROW_C
275    #define BN_MP_CLAMP_C
276 #endif
277 
278 #if defined(BN_MP_DIV_2D_C)
279    #define BN_MP_COPY_C
280    #define BN_MP_ZERO_C
281    #define BN_MP_INIT_C
282    #define BN_MP_MOD_2D_C
283    #define BN_MP_CLEAR_C
284    #define BN_MP_RSHD_C
285    #define BN_MP_CLAMP_C
286    #define BN_MP_EXCH_C
287 #endif
288 
289 #if defined(BN_MP_DIV_3_C)
290    #define BN_MP_INIT_SIZE_C
291    #define BN_MP_CLAMP_C
292    #define BN_MP_EXCH_C
293    #define BN_MP_CLEAR_C
294 #endif
295 
296 #if defined(BN_MP_DIV_D_C)
297    #define BN_MP_ISZERO_C
298    #define BN_MP_COPY_C
299    #define BN_MP_DIV_2D_C
300    #define BN_MP_DIV_3_C
301    #define BN_MP_INIT_SIZE_C
302    #define BN_MP_CLAMP_C
303    #define BN_MP_EXCH_C
304    #define BN_MP_CLEAR_C
305 #endif
306 
307 #if defined(BN_MP_DR_IS_MODULUS_C)
308 #endif
309 
310 #if defined(BN_MP_DR_REDUCE_C)
311    #define BN_MP_GROW_C
312    #define BN_MP_CLAMP_C
313    #define BN_MP_CMP_MAG_C
314    #define BN_S_MP_SUB_C
315 #endif
316 
317 #if defined(BN_MP_DR_SETUP_C)
318 #endif
319 
320 #if defined(BN_MP_EXCH_C)
321 #endif
322 
323 #if defined(BN_MP_EXPT_D_C)
324    #define BN_MP_INIT_COPY_C
325    #define BN_MP_SET_C
326    #define BN_MP_SQR_C
327    #define BN_MP_CLEAR_C
328    #define BN_MP_MUL_C
329 #endif
330 
331 #if defined(BN_MP_EXPTMOD_C)
332    #define BN_MP_INIT_C
333    #define BN_MP_INVMOD_C
334    #define BN_MP_CLEAR_C
335    #define BN_MP_ABS_C
336    #define BN_MP_CLEAR_MULTI_C
337    #define BN_MP_REDUCE_IS_2K_L_C
338    #define BN_S_MP_EXPTMOD_C
339    #define BN_MP_DR_IS_MODULUS_C
340    #define BN_MP_REDUCE_IS_2K_C
341    #define BN_MP_ISODD_C
342    #define BN_MP_EXPTMOD_FAST_C
343 #endif
344 
345 #if defined(BN_MP_EXPTMOD_FAST_C)
346    #define BN_MP_COUNT_BITS_C
347    #define BN_MP_INIT_C
348    #define BN_MP_CLEAR_C
349    #define BN_MP_MONTGOMERY_SETUP_C
350    #define BN_FAST_MP_MONTGOMERY_REDUCE_C
351    #define BN_MP_MONTGOMERY_REDUCE_C
352    #define BN_MP_DR_SETUP_C
353    #define BN_MP_DR_REDUCE_C
354    #define BN_MP_REDUCE_2K_SETUP_C
355    #define BN_MP_REDUCE_2K_C
356    #define BN_MP_MONTGOMERY_CALC_NORMALIZATION_C
357    #define BN_MP_MULMOD_C
358    #define BN_MP_SET_C
359    #define BN_MP_MOD_C
360    #define BN_MP_COPY_C
361    #define BN_MP_SQR_C
362    #define BN_MP_MUL_C
363    #define BN_MP_EXCH_C
364 #endif
365 
366 #if defined(BN_MP_EXTEUCLID_C)
367    #define BN_MP_INIT_MULTI_C
368    #define BN_MP_SET_C
369    #define BN_MP_COPY_C
370    #define BN_MP_ISZERO_C
371    #define BN_MP_DIV_C
372    #define BN_MP_MUL_C
373    #define BN_MP_SUB_C
374    #define BN_MP_NEG_C
375    #define BN_MP_EXCH_C
376    #define BN_MP_CLEAR_MULTI_C
377 #endif
378 
379 #if defined(BN_MP_FREAD_C)
380    #define BN_MP_ZERO_C
381    #define BN_MP_S_RMAP_C
382    #define BN_MP_MUL_D_C
383    #define BN_MP_ADD_D_C
384    #define BN_MP_CMP_D_C
385 #endif
386 
387 #if defined(BN_MP_FWRITE_C)
388    #define BN_MP_RADIX_SIZE_C
389    #define BN_MP_TORADIX_C
390 #endif
391 
392 #if defined(BN_MP_GCD_C)
393    #define BN_MP_ISZERO_C
394    #define BN_MP_ABS_C
395    #define BN_MP_ZERO_C
396    #define BN_MP_INIT_COPY_C
397    #define BN_MP_CNT_LSB_C
398    #define BN_MP_DIV_2D_C
399    #define BN_MP_CMP_MAG_C
400    #define BN_MP_EXCH_C
401    #define BN_S_MP_SUB_C
402    #define BN_MP_MUL_2D_C
403    #define BN_MP_CLEAR_C
404 #endif
405 
406 #if defined(BN_MP_GET_INT_C)
407 #endif
408 
409 #if defined(BN_MP_GROW_C)
410 #endif
411 
412 #if defined(BN_MP_INIT_C)
413 #endif
414 
415 #if defined(BN_MP_INIT_COPY_C)
416    #define BN_MP_COPY_C
417 #endif
418 
419 #if defined(BN_MP_INIT_MULTI_C)
420    #define BN_MP_ERR_C
421    #define BN_MP_INIT_C
422    #define BN_MP_CLEAR_C
423 #endif
424 
425 #if defined(BN_MP_INIT_SET_C)
426    #define BN_MP_INIT_C
427    #define BN_MP_SET_C
428 #endif
429 
430 #if defined(BN_MP_INIT_SET_INT_C)
431    #define BN_MP_INIT_C
432    #define BN_MP_SET_INT_C
433 #endif
434 
435 #if defined(BN_MP_INIT_SIZE_C)
436    #define BN_MP_INIT_C
437 #endif
438 
439 #if defined(BN_MP_INVMOD_C)
440    #define BN_MP_ISZERO_C
441    #define BN_MP_ISODD_C
442    #define BN_FAST_MP_INVMOD_C
443    #define BN_MP_INVMOD_SLOW_C
444 #endif
445 
446 #if defined(BN_MP_INVMOD_SLOW_C)
447    #define BN_MP_ISZERO_C
448    #define BN_MP_INIT_MULTI_C
449    #define BN_MP_MOD_C
450    #define BN_MP_COPY_C
451    #define BN_MP_ISEVEN_C
452    #define BN_MP_SET_C
453    #define BN_MP_DIV_2_C
454    #define BN_MP_ISODD_C
455    #define BN_MP_ADD_C
456    #define BN_MP_SUB_C
457    #define BN_MP_CMP_C
458    #define BN_MP_CMP_D_C
459    #define BN_MP_CMP_MAG_C
460    #define BN_MP_EXCH_C
461    #define BN_MP_CLEAR_MULTI_C
462 #endif
463 
464 #if defined(BN_MP_IS_SQUARE_C)
465    #define BN_MP_MOD_D_C
466    #define BN_MP_INIT_SET_INT_C
467    #define BN_MP_MOD_C
468    #define BN_MP_GET_INT_C
469    #define BN_MP_SQRT_C
470    #define BN_MP_SQR_C
471    #define BN_MP_CMP_MAG_C
472    #define BN_MP_CLEAR_C
473 #endif
474 
475 #if defined(BN_MP_JACOBI_C)
476    #define BN_MP_CMP_D_C
477    #define BN_MP_ISZERO_C
478    #define BN_MP_INIT_COPY_C
479    #define BN_MP_CNT_LSB_C
480    #define BN_MP_DIV_2D_C
481    #define BN_MP_MOD_C
482    #define BN_MP_CLEAR_C
483 #endif
484 
485 #if defined(BN_MP_KARATSUBA_MUL_C)
486    #define BN_MP_MUL_C
487    #define BN_MP_INIT_SIZE_C
488    #define BN_MP_CLAMP_C
489    #define BN_MP_SUB_C
490    #define BN_MP_ADD_C
491    #define BN_MP_LSHD_C
492    #define BN_MP_CLEAR_C
493 #endif
494 
495 #if defined(BN_MP_KARATSUBA_SQR_C)
496    #define BN_MP_INIT_SIZE_C
497    #define BN_MP_CLAMP_C
498    #define BN_MP_SQR_C
499    #define BN_MP_SUB_C
500    #define BN_S_MP_ADD_C
501    #define BN_MP_LSHD_C
502    #define BN_MP_ADD_C
503    #define BN_MP_CLEAR_C
504 #endif
505 
506 #if defined(BN_MP_LCM_C)
507    #define BN_MP_INIT_MULTI_C
508    #define BN_MP_GCD_C
509    #define BN_MP_CMP_MAG_C
510    #define BN_MP_DIV_C
511    #define BN_MP_MUL_C
512    #define BN_MP_CLEAR_MULTI_C
513 #endif
514 
515 #if defined(BN_MP_LSHD_C)
516    #define BN_MP_GROW_C
517    #define BN_MP_RSHD_C
518 #endif
519 
520 #if defined(BN_MP_MOD_C)
521    #define BN_MP_INIT_C
522    #define BN_MP_DIV_C
523    #define BN_MP_CLEAR_C
524    #define BN_MP_ADD_C
525    #define BN_MP_EXCH_C
526 #endif
527 
528 #if defined(BN_MP_MOD_2D_C)
529    #define BN_MP_ZERO_C
530    #define BN_MP_COPY_C
531    #define BN_MP_CLAMP_C
532 #endif
533 
534 #if defined(BN_MP_MOD_D_C)
535    #define BN_MP_DIV_D_C
536 #endif
537 
538 #if defined(BN_MP_MONTGOMERY_CALC_NORMALIZATION_C)
539    #define BN_MP_COUNT_BITS_C
540    #define BN_MP_2EXPT_C
541    #define BN_MP_SET_C
542    #define BN_MP_MUL_2_C
543    #define BN_MP_CMP_MAG_C
544    #define BN_S_MP_SUB_C
545 #endif
546 
547 #if defined(BN_MP_MONTGOMERY_REDUCE_C)
548    #define BN_FAST_MP_MONTGOMERY_REDUCE_C
549    #define BN_MP_GROW_C
550    #define BN_MP_CLAMP_C
551    #define BN_MP_RSHD_C
552    #define BN_MP_CMP_MAG_C
553    #define BN_S_MP_SUB_C
554 #endif
555 
556 #if defined(BN_MP_MONTGOMERY_SETUP_C)
557 #endif
558 
559 #if defined(BN_MP_MUL_C)
560    #define BN_MP_TOOM_MUL_C
561    #define BN_MP_KARATSUBA_MUL_C
562    #define BN_FAST_S_MP_MUL_DIGS_C
563    #define BN_S_MP_MUL_C
564    #define BN_S_MP_MUL_DIGS_C
565 #endif
566 
567 #if defined(BN_MP_MUL_2_C)
568    #define BN_MP_GROW_C
569 #endif
570 
571 #if defined(BN_MP_MUL_2D_C)
572    #define BN_MP_COPY_C
573    #define BN_MP_GROW_C
574    #define BN_MP_LSHD_C
575    #define BN_MP_CLAMP_C
576 #endif
577 
578 #if defined(BN_MP_MUL_D_C)
579    #define BN_MP_GROW_C
580    #define BN_MP_CLAMP_C
581 #endif
582 
583 #if defined(BN_MP_MULMOD_C)
584    #define BN_MP_INIT_C
585    #define BN_MP_MUL_C
586    #define BN_MP_CLEAR_C
587    #define BN_MP_MOD_C
588 #endif
589 
590 #if defined(BN_MP_N_ROOT_C)
591    #define BN_MP_INIT_C
592    #define BN_MP_SET_C
593    #define BN_MP_COPY_C
594    #define BN_MP_EXPT_D_C
595    #define BN_MP_MUL_C
596    #define BN_MP_SUB_C
597    #define BN_MP_MUL_D_C
598    #define BN_MP_DIV_C
599    #define BN_MP_CMP_C
600    #define BN_MP_SUB_D_C
601    #define BN_MP_EXCH_C
602    #define BN_MP_CLEAR_C
603 #endif
604 
605 #if defined(BN_MP_NEG_C)
606    #define BN_MP_COPY_C
607    #define BN_MP_ISZERO_C
608 #endif
609 
610 #if defined(BN_MP_OR_C)
611    #define BN_MP_INIT_COPY_C
612    #define BN_MP_CLAMP_C
613    #define BN_MP_EXCH_C
614    #define BN_MP_CLEAR_C
615 #endif
616 
617 #if defined(BN_MP_PRIME_FERMAT_C)
618    #define BN_MP_CMP_D_C
619    #define BN_MP_INIT_C
620    #define BN_MP_EXPTMOD_C
621    #define BN_MP_CMP_C
622    #define BN_MP_CLEAR_C
623 #endif
624 
625 #if defined(BN_MP_PRIME_IS_DIVISIBLE_C)
626    #define BN_MP_MOD_D_C
627 #endif
628 
629 #if defined(BN_MP_PRIME_IS_PRIME_C)
630    #define BN_MP_CMP_D_C
631    #define BN_MP_PRIME_IS_DIVISIBLE_C
632    #define BN_MP_INIT_C
633    #define BN_MP_SET_C
634    #define BN_MP_PRIME_MILLER_RABIN_C
635    #define BN_MP_CLEAR_C
636 #endif
637 
638 #if defined(BN_MP_PRIME_MILLER_RABIN_C)
639    #define BN_MP_CMP_D_C
640    #define BN_MP_INIT_COPY_C
641    #define BN_MP_SUB_D_C
642    #define BN_MP_CNT_LSB_C
643    #define BN_MP_DIV_2D_C
644    #define BN_MP_EXPTMOD_C
645    #define BN_MP_CMP_C
646    #define BN_MP_SQRMOD_C
647    #define BN_MP_CLEAR_C
648 #endif
649 
650 #if defined(BN_MP_PRIME_NEXT_PRIME_C)
651    #define BN_MP_CMP_D_C
652    #define BN_MP_SET_C
653    #define BN_MP_SUB_D_C
654    #define BN_MP_ISEVEN_C
655    #define BN_MP_MOD_D_C
656    #define BN_MP_INIT_C
657    #define BN_MP_ADD_D_C
658    #define BN_MP_PRIME_MILLER_RABIN_C
659    #define BN_MP_CLEAR_C
660 #endif
661 
662 #if defined(BN_MP_PRIME_RABIN_MILLER_TRIALS_C)
663 #endif
664 
665 #if defined(BN_MP_PRIME_RANDOM_EX_C)
666    #define BN_MP_READ_UNSIGNED_BIN_C
667    #define BN_MP_PRIME_IS_PRIME_C
668    #define BN_MP_SUB_D_C
669    #define BN_MP_DIV_2_C
670    #define BN_MP_MUL_2_C
671    #define BN_MP_ADD_D_C
672 #endif
673 
674 #if defined(BN_MP_RADIX_SIZE_C)
675    #define BN_MP_COUNT_BITS_C
676    #define BN_MP_INIT_COPY_C
677    #define BN_MP_ISZERO_C
678    #define BN_MP_DIV_D_C
679    #define BN_MP_CLEAR_C
680 #endif
681 
682 #if defined(BN_MP_RADIX_SMAP_C)
683    #define BN_MP_S_RMAP_C
684 #endif
685 
686 #if defined(BN_MP_RAND_C)
687    #define BN_MP_ZERO_C
688    #define BN_MP_ADD_D_C
689    #define BN_MP_LSHD_C
690 #endif
691 
692 #if defined(BN_MP_READ_RADIX_C)
693    #define BN_MP_ZERO_C
694    #define BN_MP_S_RMAP_C
695    #define BN_MP_RADIX_SMAP_C
696    #define BN_MP_MUL_D_C
697    #define BN_MP_ADD_D_C
698    #define BN_MP_ISZERO_C
699 #endif
700 
701 #if defined(BN_MP_READ_SIGNED_BIN_C)
702    #define BN_MP_READ_UNSIGNED_BIN_C
703 #endif
704 
705 #if defined(BN_MP_READ_UNSIGNED_BIN_C)
706    #define BN_MP_GROW_C
707    #define BN_MP_ZERO_C
708    #define BN_MP_MUL_2D_C
709    #define BN_MP_CLAMP_C
710 #endif
711 
712 #if defined(BN_MP_REDUCE_C)
713    #define BN_MP_REDUCE_SETUP_C
714    #define BN_MP_INIT_COPY_C
715    #define BN_MP_RSHD_C
716    #define BN_MP_MUL_C
717    #define BN_S_MP_MUL_HIGH_DIGS_C
718    #define BN_FAST_S_MP_MUL_HIGH_DIGS_C
719    #define BN_MP_MOD_2D_C
720    #define BN_S_MP_MUL_DIGS_C
721    #define BN_MP_SUB_C
722    #define BN_MP_CMP_D_C
723    #define BN_MP_SET_C
724    #define BN_MP_LSHD_C
725    #define BN_MP_ADD_C
726    #define BN_MP_CMP_C
727    #define BN_S_MP_SUB_C
728    #define BN_MP_CLEAR_C
729 #endif
730 
731 #if defined(BN_MP_REDUCE_2K_C)
732    #define BN_MP_INIT_C
733    #define BN_MP_COUNT_BITS_C
734    #define BN_MP_DIV_2D_C
735    #define BN_MP_MUL_D_C
736    #define BN_S_MP_ADD_C
737    #define BN_MP_CMP_MAG_C
738    #define BN_S_MP_SUB_C
739    #define BN_MP_CLEAR_C
740 #endif
741 
742 #if defined(BN_MP_REDUCE_2K_L_C)
743    #define BN_MP_INIT_C
744    #define BN_MP_COUNT_BITS_C
745    #define BN_MP_DIV_2D_C
746    #define BN_MP_MUL_C
747    #define BN_S_MP_ADD_C
748    #define BN_MP_CMP_MAG_C
749    #define BN_S_MP_SUB_C
750    #define BN_MP_CLEAR_C
751 #endif
752 
753 #if defined(BN_MP_REDUCE_2K_SETUP_C)
754    #define BN_MP_INIT_C
755    #define BN_MP_COUNT_BITS_C
756    #define BN_MP_2EXPT_C
757    #define BN_MP_CLEAR_C
758    #define BN_S_MP_SUB_C
759 #endif
760 
761 #if defined(BN_MP_REDUCE_2K_SETUP_L_C)
762    #define BN_MP_INIT_C
763    #define BN_MP_2EXPT_C
764    #define BN_MP_COUNT_BITS_C
765    #define BN_S_MP_SUB_C
766    #define BN_MP_CLEAR_C
767 #endif
768 
769 #if defined(BN_MP_REDUCE_IS_2K_C)
770    #define BN_MP_REDUCE_2K_C
771    #define BN_MP_COUNT_BITS_C
772 #endif
773 
774 #if defined(BN_MP_REDUCE_IS_2K_L_C)
775 #endif
776 
777 #if defined(BN_MP_REDUCE_SETUP_C)
778    #define BN_MP_2EXPT_C
779    #define BN_MP_DIV_C
780 #endif
781 
782 #if defined(BN_MP_RSHD_C)
783    #define BN_MP_ZERO_C
784 #endif
785 
786 #if defined(BN_MP_SET_C)
787    #define BN_MP_ZERO_C
788 #endif
789 
790 #if defined(BN_MP_SET_INT_C)
791    #define BN_MP_ZERO_C
792    #define BN_MP_MUL_2D_C
793    #define BN_MP_CLAMP_C
794 #endif
795 
796 #if defined(BN_MP_SHRINK_C)
797 #endif
798 
799 #if defined(BN_MP_SIGNED_BIN_SIZE_C)
800    #define BN_MP_UNSIGNED_BIN_SIZE_C
801 #endif
802 
803 #if defined(BN_MP_SQR_C)
804    #define BN_MP_TOOM_SQR_C
805    #define BN_MP_KARATSUBA_SQR_C
806    #define BN_FAST_S_MP_SQR_C
807    #define BN_S_MP_SQR_C
808 #endif
809 
810 #if defined(BN_MP_SQRMOD_C)
811    #define BN_MP_INIT_C
812    #define BN_MP_SQR_C
813    #define BN_MP_CLEAR_C
814    #define BN_MP_MOD_C
815 #endif
816 
817 #if defined(BN_MP_SQRT_C)
818    #define BN_MP_N_ROOT_C
819    #define BN_MP_ISZERO_C
820    #define BN_MP_ZERO_C
821    #define BN_MP_INIT_COPY_C
822    #define BN_MP_RSHD_C
823    #define BN_MP_DIV_C
824    #define BN_MP_ADD_C
825    #define BN_MP_DIV_2_C
826    #define BN_MP_CMP_MAG_C
827    #define BN_MP_EXCH_C
828    #define BN_MP_CLEAR_C
829 #endif
830 
831 #if defined(BN_MP_SUB_C)
832    #define BN_S_MP_ADD_C
833    #define BN_MP_CMP_MAG_C
834    #define BN_S_MP_SUB_C
835 #endif
836 
837 #if defined(BN_MP_SUB_D_C)
838    #define BN_MP_GROW_C
839    #define BN_MP_ADD_D_C
840    #define BN_MP_CLAMP_C
841 #endif
842 
843 #if defined(BN_MP_SUBMOD_C)
844    #define BN_MP_INIT_C
845    #define BN_MP_SUB_C
846    #define BN_MP_CLEAR_C
847    #define BN_MP_MOD_C
848 #endif
849 
850 #if defined(BN_MP_TO_SIGNED_BIN_C)
851    #define BN_MP_TO_UNSIGNED_BIN_C
852 #endif
853 
854 #if defined(BN_MP_TO_SIGNED_BIN_N_C)
855    #define BN_MP_SIGNED_BIN_SIZE_C
856    #define BN_MP_TO_SIGNED_BIN_C
857 #endif
858 
859 #if defined(BN_MP_TO_UNSIGNED_BIN_C)
860    #define BN_MP_INIT_COPY_C
861    #define BN_MP_ISZERO_C
862    #define BN_MP_DIV_2D_C
863    #define BN_MP_CLEAR_C
864 #endif
865 
866 #if defined(BN_MP_TO_UNSIGNED_BIN_N_C)
867    #define BN_MP_UNSIGNED_BIN_SIZE_C
868    #define BN_MP_TO_UNSIGNED_BIN_C
869 #endif
870 
871 #if defined(BN_MP_TOOM_MUL_C)
872    #define BN_MP_INIT_MULTI_C
873    #define BN_MP_MOD_2D_C
874    #define BN_MP_COPY_C
875    #define BN_MP_RSHD_C
876    #define BN_MP_MUL_C
877    #define BN_MP_MUL_2_C
878    #define BN_MP_ADD_C
879    #define BN_MP_SUB_C
880    #define BN_MP_DIV_2_C
881    #define BN_MP_MUL_2D_C
882    #define BN_MP_MUL_D_C
883    #define BN_MP_DIV_3_C
884    #define BN_MP_LSHD_C
885    #define BN_MP_CLEAR_MULTI_C
886 #endif
887 
888 #if defined(BN_MP_TOOM_SQR_C)
889    #define BN_MP_INIT_MULTI_C
890    #define BN_MP_MOD_2D_C
891    #define BN_MP_COPY_C
892    #define BN_MP_RSHD_C
893    #define BN_MP_SQR_C
894    #define BN_MP_MUL_2_C
895    #define BN_MP_ADD_C
896    #define BN_MP_SUB_C
897    #define BN_MP_DIV_2_C
898    #define BN_MP_MUL_2D_C
899    #define BN_MP_MUL_D_C
900    #define BN_MP_DIV_3_C
901    #define BN_MP_LSHD_C
902    #define BN_MP_CLEAR_MULTI_C
903 #endif
904 
905 #if defined(BN_MP_TORADIX_C)
906    #define BN_MP_ISZERO_C
907    #define BN_MP_INIT_COPY_C
908    #define BN_MP_DIV_D_C
909    #define BN_MP_CLEAR_C
910    #define BN_MP_S_RMAP_C
911 #endif
912 
913 #if defined(BN_MP_TORADIX_N_C)
914    #define BN_MP_ISZERO_C
915    #define BN_MP_INIT_COPY_C
916    #define BN_MP_DIV_D_C
917    #define BN_MP_CLEAR_C
918    #define BN_MP_S_RMAP_C
919 #endif
920 
921 #if defined(BN_MP_UNSIGNED_BIN_SIZE_C)
922    #define BN_MP_COUNT_BITS_C
923 #endif
924 
925 #if defined(BN_MP_XOR_C)
926    #define BN_MP_INIT_COPY_C
927    #define BN_MP_CLAMP_C
928    #define BN_MP_EXCH_C
929    #define BN_MP_CLEAR_C
930 #endif
931 
932 #if defined(BN_MP_ZERO_C)
933 #endif
934 
935 #if defined(BN_PRIME_TAB_C)
936 #endif
937 
938 #if defined(BN_REVERSE_C)
939 #endif
940 
941 #if defined(BN_S_MP_ADD_C)
942    #define BN_MP_GROW_C
943    #define BN_MP_CLAMP_C
944 #endif
945 
946 #if defined(BN_S_MP_EXPTMOD_C)
947    #define BN_MP_COUNT_BITS_C
948    #define BN_MP_INIT_C
949    #define BN_MP_CLEAR_C
950    #define BN_MP_REDUCE_SETUP_C
951    #define BN_MP_REDUCE_C
952    #define BN_MP_REDUCE_2K_SETUP_L_C
953    #define BN_MP_REDUCE_2K_L_C
954    #define BN_MP_MOD_C
955    #define BN_MP_COPY_C
956    #define BN_MP_SQR_C
957    #define BN_MP_MUL_C
958    #define BN_MP_SET_C
959    #define BN_MP_EXCH_C
960 #endif
961 
962 #if defined(BN_S_MP_MUL_DIGS_C)
963    #define BN_FAST_S_MP_MUL_DIGS_C
964    #define BN_MP_INIT_SIZE_C
965    #define BN_MP_CLAMP_C
966    #define BN_MP_EXCH_C
967    #define BN_MP_CLEAR_C
968 #endif
969 
970 #if defined(BN_S_MP_MUL_HIGH_DIGS_C)
971    #define BN_FAST_S_MP_MUL_HIGH_DIGS_C
972    #define BN_MP_INIT_SIZE_C
973    #define BN_MP_CLAMP_C
974    #define BN_MP_EXCH_C
975    #define BN_MP_CLEAR_C
976 #endif
977 
978 #if defined(BN_S_MP_SQR_C)
979    #define BN_MP_INIT_SIZE_C
980    #define BN_MP_CLAMP_C
981    #define BN_MP_EXCH_C
982    #define BN_MP_CLEAR_C
983 #endif
984 
985 #if defined(BN_S_MP_SUB_C)
986    #define BN_MP_GROW_C
987    #define BN_MP_CLAMP_C
988 #endif
989 
990 #if defined(BNCORE_C)
991 #endif
992 
993 #ifdef LTM3
994 #define LTM_LAST
995 #endif
996 #include <tommath_superclass.h>
997 #include <tommath_class.h>
998 #else
999 #define LTM_LAST
1000 #endif
1001 
1002 /* Source: /cvs/libtom/libtommath/tommath_class.h,v  */
1003 /* Revision: 1.3  */
1004 /* Date: 2005/07/28 11:59:32  */
1005