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