cyassl re-port with cellular comms, PSK test

Dependencies:   VodafoneUSBModem_bleedingedge2 mbed-rtos mbed-src

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers mpi_class.h Source File

mpi_class.h

00001 /* mpi_class.h
00002  *
00003  * Copyright (C) 2006-2012 Sawtooth Consulting Ltd.
00004  *
00005  * This file is part of CyaSSL.
00006  *
00007  * CyaSSL is free software; you can redistribute it and/or modify
00008  * it under the terms of the GNU General Public License as published by
00009  * the Free Software Foundation; either version 2 of the License, or
00010  * (at your option) any later version.
00011  *
00012  * CyaSSL is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015  * GNU General Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License
00018  * along with this program; if not, write to the Free Software
00019  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
00020  */
00021 
00022 
00023 #if !(defined(LTM1) && defined(LTM2) && defined(LTM3))
00024 #if defined(LTM2)
00025 #define LTM3
00026 #endif
00027 #if defined(LTM1)
00028 #define LTM2
00029 #endif
00030 #define LTM1
00031 
00032 #if defined(LTM_ALL)
00033 #define BN_ERROR_C
00034 #define BN_FAST_MP_INVMOD_C
00035 #define BN_FAST_MP_MONTGOMERY_REDUCE_C
00036 #define BN_FAST_S_MP_MUL_DIGS_C
00037 #define BN_FAST_S_MP_MUL_HIGH_DIGS_C
00038 #define BN_FAST_S_MP_SQR_C
00039 #define BN_MP_2EXPT_C
00040 #define BN_MP_ABS_C
00041 #define BN_MP_ADD_C
00042 #define BN_MP_ADD_D_C
00043 #define BN_MP_ADDMOD_C
00044 #define BN_MP_AND_C
00045 #define BN_MP_CLAMP_C
00046 #define BN_MP_CLEAR_C
00047 #define BN_MP_CLEAR_MULTI_C
00048 #define BN_MP_CMP_C
00049 #define BN_MP_CMP_D_C
00050 #define BN_MP_CMP_MAG_C
00051 #define BN_MP_CNT_LSB_C
00052 #define BN_MP_COPY_C
00053 #define BN_MP_COUNT_BITS_C
00054 #define BN_MP_DIV_C
00055 #define BN_MP_DIV_2_C
00056 #define BN_MP_DIV_2D_C
00057 #define BN_MP_DIV_3_C
00058 #define BN_MP_DIV_D_C
00059 #define BN_MP_DR_IS_MODULUS_C
00060 #define BN_MP_DR_REDUCE_C
00061 #define BN_MP_DR_SETUP_C
00062 #define BN_MP_EXCH_C
00063 #define BN_MP_EXPT_D_C
00064 #define BN_MP_EXPTMOD_C
00065 #define BN_MP_EXPTMOD_FAST_C
00066 #define BN_MP_EXTEUCLID_C
00067 #define BN_MP_FREAD_C
00068 #define BN_MP_FWRITE_C
00069 #define BN_MP_GCD_C
00070 #define BN_MP_GET_INT_C
00071 #define BN_MP_GROW_C
00072 #define BN_MP_INIT_C
00073 #define BN_MP_INIT_COPY_C
00074 #define BN_MP_INIT_MULTI_C
00075 #define BN_MP_INIT_SET_C
00076 #define BN_MP_INIT_SET_INT_C
00077 #define BN_MP_INIT_SIZE_C
00078 #define BN_MP_INVMOD_C
00079 #define BN_MP_INVMOD_SLOW_C
00080 #define BN_MP_IS_SQUARE_C
00081 #define BN_MP_JACOBI_C
00082 #define BN_MP_KARATSUBA_MUL_C
00083 #define BN_MP_KARATSUBA_SQR_C
00084 #define BN_MP_LCM_C
00085 #define BN_MP_LSHD_C
00086 #define BN_MP_MOD_C
00087 #define BN_MP_MOD_2D_C
00088 #define BN_MP_MOD_D_C
00089 #define BN_MP_MONTGOMERY_CALC_NORMALIZATION_C
00090 #define BN_MP_MONTGOMERY_REDUCE_C
00091 #define BN_MP_MONTGOMERY_SETUP_C
00092 #define BN_MP_MUL_C
00093 #define BN_MP_MUL_2_C
00094 #define BN_MP_MUL_2D_C
00095 #define BN_MP_MUL_D_C
00096 #define BN_MP_MULMOD_C
00097 #define BN_MP_N_ROOT_C
00098 #define BN_MP_NEG_C
00099 #define BN_MP_OR_C
00100 #define BN_MP_PRIME_FERMAT_C
00101 #define BN_MP_PRIME_IS_DIVISIBLE_C
00102 #define BN_MP_PRIME_IS_PRIME_C
00103 #define BN_MP_PRIME_MILLER_RABIN_C
00104 #define BN_MP_PRIME_NEXT_PRIME_C
00105 #define BN_MP_PRIME_RABIN_MILLER_TRIALS_C
00106 #define BN_MP_PRIME_RANDOM_EX_C
00107 #define BN_MP_RADIX_SIZE_C
00108 #define BN_MP_RADIX_SMAP_C
00109 #define BN_MP_RAND_C
00110 #define BN_MP_READ_RADIX_C
00111 #define BN_MP_READ_SIGNED_BIN_C
00112 #define BN_MP_READ_UNSIGNED_BIN_C
00113 #define BN_MP_REDUCE_C
00114 #define BN_MP_REDUCE_2K_C
00115 #define BN_MP_REDUCE_2K_L_C
00116 #define BN_MP_REDUCE_2K_SETUP_C
00117 #define BN_MP_REDUCE_2K_SETUP_L_C
00118 #define BN_MP_REDUCE_IS_2K_C
00119 #define BN_MP_REDUCE_IS_2K_L_C
00120 #define BN_MP_REDUCE_SETUP_C
00121 #define BN_MP_RSHD_C
00122 #define BN_MP_SET_C
00123 #define BN_MP_SET_INT_C
00124 #define BN_MP_SHRINK_C
00125 #define BN_MP_SIGNED_BIN_SIZE_C
00126 #define BN_MP_SQR_C
00127 #define BN_MP_SQRMOD_C
00128 #define BN_MP_SQRT_C
00129 #define BN_MP_SUB_C
00130 #define BN_MP_SUB_D_C
00131 #define BN_MP_SUBMOD_C
00132 #define BN_MP_TO_SIGNED_BIN_C
00133 #define BN_MP_TO_SIGNED_BIN_N_C
00134 #define BN_MP_TO_UNSIGNED_BIN_C
00135 #define BN_MP_TO_UNSIGNED_BIN_N_C
00136 #define BN_MP_TOOM_MUL_C
00137 #define BN_MP_TOOM_SQR_C
00138 #define BN_MP_TORADIX_C
00139 #define BN_MP_TORADIX_N_C
00140 #define BN_MP_UNSIGNED_BIN_SIZE_C
00141 #define BN_MP_XOR_C
00142 #define BN_MP_ZERO_C
00143 #define BN_PRIME_TAB_C
00144 #define BN_REVERSE_C
00145 #define BN_S_MP_ADD_C
00146 #define BN_S_MP_EXPTMOD_C
00147 #define BN_S_MP_MUL_DIGS_C
00148 #define BN_S_MP_MUL_HIGH_DIGS_C
00149 #define BN_S_MP_SQR_C
00150 #define BN_S_MP_SUB_C
00151 #define BNCORE_C
00152 #endif
00153 
00154 #if defined(BN_ERROR_C)
00155    #define BN_MP_ERROR_TO_STRING_C
00156 #endif
00157 
00158 #if defined(BN_FAST_MP_INVMOD_C)
00159    #define BN_MP_ISEVEN_C
00160    #define BN_MP_INIT_MULTI_C
00161    #define BN_MP_COPY_C
00162    #define BN_MP_MOD_C
00163    #define BN_MP_SET_C
00164    #define BN_MP_DIV_2_C
00165    #define BN_MP_ISODD_C
00166    #define BN_MP_SUB_C
00167    #define BN_MP_CMP_C
00168    #define BN_MP_ISZERO_C
00169    #define BN_MP_CMP_D_C
00170    #define BN_MP_ADD_C
00171    #define BN_MP_EXCH_C
00172    #define BN_MP_CLEAR_MULTI_C
00173 #endif
00174 
00175 #if defined(BN_FAST_MP_MONTGOMERY_REDUCE_C)
00176    #define BN_MP_GROW_C
00177    #define BN_MP_RSHD_C
00178    #define BN_MP_CLAMP_C
00179    #define BN_MP_CMP_MAG_C
00180    #define BN_S_MP_SUB_C
00181 #endif
00182 
00183 #if defined(BN_FAST_S_MP_MUL_DIGS_C)
00184    #define BN_MP_GROW_C
00185    #define BN_MP_CLAMP_C
00186 #endif
00187 
00188 #if defined(BN_FAST_S_MP_MUL_HIGH_DIGS_C)
00189    #define BN_MP_GROW_C
00190    #define BN_MP_CLAMP_C
00191 #endif
00192 
00193 #if defined(BN_FAST_S_MP_SQR_C)
00194    #define BN_MP_GROW_C
00195    #define BN_MP_CLAMP_C
00196 #endif
00197 
00198 #if defined(BN_MP_2EXPT_C)
00199    #define BN_MP_ZERO_C
00200    #define BN_MP_GROW_C
00201 #endif
00202 
00203 #if defined(BN_MP_ABS_C)
00204    #define BN_MP_COPY_C
00205 #endif
00206 
00207 #if defined(BN_MP_ADD_C)
00208    #define BN_S_MP_ADD_C
00209    #define BN_MP_CMP_MAG_C
00210    #define BN_S_MP_SUB_C
00211 #endif
00212 
00213 #if defined(BN_MP_ADD_D_C)
00214    #define BN_MP_GROW_C
00215    #define BN_MP_SUB_D_C
00216    #define BN_MP_CLAMP_C
00217 #endif
00218 
00219 #if defined(BN_MP_ADDMOD_C)
00220    #define BN_MP_INIT_C
00221    #define BN_MP_ADD_C
00222    #define BN_MP_CLEAR_C
00223    #define BN_MP_MOD_C
00224 #endif
00225 
00226 #if defined(BN_MP_AND_C)
00227    #define BN_MP_INIT_COPY_C
00228    #define BN_MP_CLAMP_C
00229    #define BN_MP_EXCH_C
00230    #define BN_MP_CLEAR_C
00231 #endif
00232 
00233 #if defined(BN_MP_CLAMP_C)
00234 #endif
00235 
00236 #if defined(BN_MP_CLEAR_C)
00237 #endif
00238 
00239 #if defined(BN_MP_CLEAR_MULTI_C)
00240    #define BN_MP_CLEAR_C
00241 #endif
00242 
00243 #if defined(BN_MP_CMP_C)
00244    #define BN_MP_CMP_MAG_C
00245 #endif
00246 
00247 #if defined(BN_MP_CMP_D_C)
00248 #endif
00249 
00250 #if defined(BN_MP_CMP_MAG_C)
00251 #endif
00252 
00253 #if defined(BN_MP_CNT_LSB_C)
00254    #define BN_MP_ISZERO_C
00255 #endif
00256 
00257 #if defined(BN_MP_COPY_C)
00258    #define BN_MP_GROW_C
00259 #endif
00260 
00261 #if defined(BN_MP_COUNT_BITS_C)
00262 #endif
00263 
00264 #if defined(BN_MP_DIV_C)
00265    #define BN_MP_ISZERO_C
00266    #define BN_MP_CMP_MAG_C
00267    #define BN_MP_COPY_C
00268    #define BN_MP_ZERO_C
00269    #define BN_MP_INIT_MULTI_C
00270    #define BN_MP_SET_C
00271    #define BN_MP_COUNT_BITS_C
00272    #define BN_MP_ABS_C
00273    #define BN_MP_MUL_2D_C
00274    #define BN_MP_CMP_C
00275    #define BN_MP_SUB_C
00276    #define BN_MP_ADD_C
00277    #define BN_MP_DIV_2D_C
00278    #define BN_MP_EXCH_C
00279    #define BN_MP_CLEAR_MULTI_C
00280    #define BN_MP_INIT_SIZE_C
00281    #define BN_MP_INIT_C
00282    #define BN_MP_INIT_COPY_C
00283    #define BN_MP_LSHD_C
00284    #define BN_MP_RSHD_C
00285    #define BN_MP_MUL_D_C
00286    #define BN_MP_CLAMP_C
00287    #define BN_MP_CLEAR_C
00288 #endif
00289 
00290 #if defined(BN_MP_DIV_2_C)
00291    #define BN_MP_GROW_C
00292    #define BN_MP_CLAMP_C
00293 #endif
00294 
00295 #if defined(BN_MP_DIV_2D_C)
00296    #define BN_MP_COPY_C
00297    #define BN_MP_ZERO_C
00298    #define BN_MP_INIT_C
00299    #define BN_MP_MOD_2D_C
00300    #define BN_MP_CLEAR_C
00301    #define BN_MP_RSHD_C
00302    #define BN_MP_CLAMP_C
00303    #define BN_MP_EXCH_C
00304 #endif
00305 
00306 #if defined(BN_MP_DIV_3_C)
00307    #define BN_MP_INIT_SIZE_C
00308    #define BN_MP_CLAMP_C
00309    #define BN_MP_EXCH_C
00310    #define BN_MP_CLEAR_C
00311 #endif
00312 
00313 #if defined(BN_MP_DIV_D_C)
00314    #define BN_MP_ISZERO_C
00315    #define BN_MP_COPY_C
00316    #define BN_MP_DIV_2D_C
00317    #define BN_MP_DIV_3_C
00318    #define BN_MP_INIT_SIZE_C
00319    #define BN_MP_CLAMP_C
00320    #define BN_MP_EXCH_C
00321    #define BN_MP_CLEAR_C
00322 #endif
00323 
00324 #if defined(BN_MP_DR_IS_MODULUS_C)
00325 #endif
00326 
00327 #if defined(BN_MP_DR_REDUCE_C)
00328    #define BN_MP_GROW_C
00329    #define BN_MP_CLAMP_C
00330    #define BN_MP_CMP_MAG_C
00331    #define BN_S_MP_SUB_C
00332 #endif
00333 
00334 #if defined(BN_MP_DR_SETUP_C)
00335 #endif
00336 
00337 #if defined(BN_MP_EXCH_C)
00338 #endif
00339 
00340 #if defined(BN_MP_EXPT_D_C)
00341    #define BN_MP_INIT_COPY_C
00342    #define BN_MP_SET_C
00343    #define BN_MP_SQR_C
00344    #define BN_MP_CLEAR_C
00345    #define BN_MP_MUL_C
00346 #endif
00347 
00348 #if defined(BN_MP_EXPTMOD_C)
00349    #define BN_MP_INIT_C
00350    #define BN_MP_INVMOD_C
00351    #define BN_MP_CLEAR_C
00352    #define BN_MP_ABS_C
00353    #define BN_MP_CLEAR_MULTI_C
00354    #define BN_MP_REDUCE_IS_2K_L_C
00355    #define BN_S_MP_EXPTMOD_C
00356    #define BN_MP_DR_IS_MODULUS_C
00357    #define BN_MP_REDUCE_IS_2K_C
00358    #define BN_MP_ISODD_C
00359    #define BN_MP_EXPTMOD_FAST_C
00360 #endif
00361 
00362 #if defined(BN_MP_EXPTMOD_FAST_C)
00363    #define BN_MP_COUNT_BITS_C
00364    #define BN_MP_INIT_C
00365    #define BN_MP_CLEAR_C
00366    #define BN_MP_MONTGOMERY_SETUP_C
00367    #define BN_FAST_MP_MONTGOMERY_REDUCE_C
00368    #define BN_MP_MONTGOMERY_REDUCE_C
00369    #define BN_MP_DR_SETUP_C
00370    #define BN_MP_DR_REDUCE_C
00371    #define BN_MP_REDUCE_2K_SETUP_C
00372    #define BN_MP_REDUCE_2K_C
00373    #define BN_MP_MONTGOMERY_CALC_NORMALIZATION_C
00374    #define BN_MP_MULMOD_C
00375    #define BN_MP_SET_C
00376    #define BN_MP_MOD_C
00377    #define BN_MP_COPY_C
00378    #define BN_MP_SQR_C
00379    #define BN_MP_MUL_C
00380    #define BN_MP_EXCH_C
00381 #endif
00382 
00383 #if defined(BN_MP_EXTEUCLID_C)
00384    #define BN_MP_INIT_MULTI_C
00385    #define BN_MP_SET_C
00386    #define BN_MP_COPY_C
00387    #define BN_MP_ISZERO_C
00388    #define BN_MP_DIV_C
00389    #define BN_MP_MUL_C
00390    #define BN_MP_SUB_C
00391    #define BN_MP_NEG_C
00392    #define BN_MP_EXCH_C
00393    #define BN_MP_CLEAR_MULTI_C
00394 #endif
00395 
00396 #if defined(BN_MP_FREAD_C)
00397    #define BN_MP_ZERO_C
00398    #define BN_MP_S_RMAP_C
00399    #define BN_MP_MUL_D_C
00400    #define BN_MP_ADD_D_C
00401    #define BN_MP_CMP_D_C
00402 #endif
00403 
00404 #if defined(BN_MP_FWRITE_C)
00405    #define BN_MP_RADIX_SIZE_C
00406    #define BN_MP_TORADIX_C
00407 #endif
00408 
00409 #if defined(BN_MP_GCD_C)
00410    #define BN_MP_ISZERO_C
00411    #define BN_MP_ABS_C
00412    #define BN_MP_ZERO_C
00413    #define BN_MP_INIT_COPY_C
00414    #define BN_MP_CNT_LSB_C
00415    #define BN_MP_DIV_2D_C
00416    #define BN_MP_CMP_MAG_C
00417    #define BN_MP_EXCH_C
00418    #define BN_S_MP_SUB_C
00419    #define BN_MP_MUL_2D_C
00420    #define BN_MP_CLEAR_C
00421 #endif
00422 
00423 #if defined(BN_MP_GET_INT_C)
00424 #endif
00425 
00426 #if defined(BN_MP_GROW_C)
00427 #endif
00428 
00429 #if defined(BN_MP_INIT_C)
00430 #endif
00431 
00432 #if defined(BN_MP_INIT_COPY_C)
00433    #define BN_MP_COPY_C
00434 #endif
00435 
00436 #if defined(BN_MP_INIT_MULTI_C)
00437    #define BN_MP_ERR_C
00438    #define BN_MP_INIT_C
00439    #define BN_MP_CLEAR_C
00440 #endif
00441 
00442 #if defined(BN_MP_INIT_SET_C)
00443    #define BN_MP_INIT_C
00444    #define BN_MP_SET_C
00445 #endif
00446 
00447 #if defined(BN_MP_INIT_SET_INT_C)
00448    #define BN_MP_INIT_C
00449    #define BN_MP_SET_INT_C
00450 #endif
00451 
00452 #if defined(BN_MP_INIT_SIZE_C)
00453    #define BN_MP_INIT_C
00454 #endif
00455 
00456 #if defined(BN_MP_INVMOD_C)
00457    #define BN_MP_ISZERO_C
00458    #define BN_MP_ISODD_C
00459    #define BN_FAST_MP_INVMOD_C
00460    #define BN_MP_INVMOD_SLOW_C
00461 #endif
00462 
00463 #if defined(BN_MP_INVMOD_SLOW_C)
00464    #define BN_MP_ISZERO_C
00465    #define BN_MP_INIT_MULTI_C
00466    #define BN_MP_MOD_C
00467    #define BN_MP_COPY_C
00468    #define BN_MP_ISEVEN_C
00469    #define BN_MP_SET_C
00470    #define BN_MP_DIV_2_C
00471    #define BN_MP_ISODD_C
00472    #define BN_MP_ADD_C
00473    #define BN_MP_SUB_C
00474    #define BN_MP_CMP_C
00475    #define BN_MP_CMP_D_C
00476    #define BN_MP_CMP_MAG_C
00477    #define BN_MP_EXCH_C
00478    #define BN_MP_CLEAR_MULTI_C
00479 #endif
00480 
00481 #if defined(BN_MP_IS_SQUARE_C)
00482    #define BN_MP_MOD_D_C
00483    #define BN_MP_INIT_SET_INT_C
00484    #define BN_MP_MOD_C
00485    #define BN_MP_GET_INT_C
00486    #define BN_MP_SQRT_C
00487    #define BN_MP_SQR_C
00488    #define BN_MP_CMP_MAG_C
00489    #define BN_MP_CLEAR_C
00490 #endif
00491 
00492 #if defined(BN_MP_JACOBI_C)
00493    #define BN_MP_CMP_D_C
00494    #define BN_MP_ISZERO_C
00495    #define BN_MP_INIT_COPY_C
00496    #define BN_MP_CNT_LSB_C
00497    #define BN_MP_DIV_2D_C
00498    #define BN_MP_MOD_C
00499    #define BN_MP_CLEAR_C
00500 #endif
00501 
00502 #if defined(BN_MP_KARATSUBA_MUL_C)
00503    #define BN_MP_MUL_C
00504    #define BN_MP_INIT_SIZE_C
00505    #define BN_MP_CLAMP_C
00506    #define BN_MP_SUB_C
00507    #define BN_MP_ADD_C
00508    #define BN_MP_LSHD_C
00509    #define BN_MP_CLEAR_C
00510 #endif
00511 
00512 #if defined(BN_MP_KARATSUBA_SQR_C)
00513    #define BN_MP_INIT_SIZE_C
00514    #define BN_MP_CLAMP_C
00515    #define BN_MP_SQR_C
00516    #define BN_MP_SUB_C
00517    #define BN_S_MP_ADD_C
00518    #define BN_MP_LSHD_C
00519    #define BN_MP_ADD_C
00520    #define BN_MP_CLEAR_C
00521 #endif
00522 
00523 #if defined(BN_MP_LCM_C)
00524    #define BN_MP_INIT_MULTI_C
00525    #define BN_MP_GCD_C
00526    #define BN_MP_CMP_MAG_C
00527    #define BN_MP_DIV_C
00528    #define BN_MP_MUL_C
00529    #define BN_MP_CLEAR_MULTI_C
00530 #endif
00531 
00532 #if defined(BN_MP_LSHD_C)
00533    #define BN_MP_GROW_C
00534    #define BN_MP_RSHD_C
00535 #endif
00536 
00537 #if defined(BN_MP_MOD_C)
00538    #define BN_MP_INIT_C
00539    #define BN_MP_DIV_C
00540    #define BN_MP_CLEAR_C
00541    #define BN_MP_ADD_C
00542    #define BN_MP_EXCH_C
00543 #endif
00544 
00545 #if defined(BN_MP_MOD_2D_C)
00546    #define BN_MP_ZERO_C
00547    #define BN_MP_COPY_C
00548    #define BN_MP_CLAMP_C
00549 #endif
00550 
00551 #if defined(BN_MP_MOD_D_C)
00552    #define BN_MP_DIV_D_C
00553 #endif
00554 
00555 #if defined(BN_MP_MONTGOMERY_CALC_NORMALIZATION_C)
00556    #define BN_MP_COUNT_BITS_C
00557    #define BN_MP_2EXPT_C
00558    #define BN_MP_SET_C
00559    #define BN_MP_MUL_2_C
00560    #define BN_MP_CMP_MAG_C
00561    #define BN_S_MP_SUB_C
00562 #endif
00563 
00564 #if defined(BN_MP_MONTGOMERY_REDUCE_C)
00565    #define BN_FAST_MP_MONTGOMERY_REDUCE_C
00566    #define BN_MP_GROW_C
00567    #define BN_MP_CLAMP_C
00568    #define BN_MP_RSHD_C
00569    #define BN_MP_CMP_MAG_C
00570    #define BN_S_MP_SUB_C
00571 #endif
00572 
00573 #if defined(BN_MP_MONTGOMERY_SETUP_C)
00574 #endif
00575 
00576 #if defined(BN_MP_MUL_C)
00577    #define BN_MP_TOOM_MUL_C
00578    #define BN_MP_KARATSUBA_MUL_C
00579    #define BN_FAST_S_MP_MUL_DIGS_C
00580    #define BN_S_MP_MUL_C
00581    #define BN_S_MP_MUL_DIGS_C
00582 #endif
00583 
00584 #if defined(BN_MP_MUL_2_C)
00585    #define BN_MP_GROW_C
00586 #endif
00587 
00588 #if defined(BN_MP_MUL_2D_C)
00589    #define BN_MP_COPY_C
00590    #define BN_MP_GROW_C
00591    #define BN_MP_LSHD_C
00592    #define BN_MP_CLAMP_C
00593 #endif
00594 
00595 #if defined(BN_MP_MUL_D_C)
00596    #define BN_MP_GROW_C
00597    #define BN_MP_CLAMP_C
00598 #endif
00599 
00600 #if defined(BN_MP_MULMOD_C)
00601    #define BN_MP_INIT_C
00602    #define BN_MP_MUL_C
00603    #define BN_MP_CLEAR_C
00604    #define BN_MP_MOD_C
00605 #endif
00606 
00607 #if defined(BN_MP_N_ROOT_C)
00608    #define BN_MP_INIT_C
00609    #define BN_MP_SET_C
00610    #define BN_MP_COPY_C
00611    #define BN_MP_EXPT_D_C
00612    #define BN_MP_MUL_C
00613    #define BN_MP_SUB_C
00614    #define BN_MP_MUL_D_C
00615    #define BN_MP_DIV_C
00616    #define BN_MP_CMP_C
00617    #define BN_MP_SUB_D_C
00618    #define BN_MP_EXCH_C
00619    #define BN_MP_CLEAR_C
00620 #endif
00621 
00622 #if defined(BN_MP_NEG_C)
00623    #define BN_MP_COPY_C
00624    #define BN_MP_ISZERO_C
00625 #endif
00626 
00627 #if defined(BN_MP_OR_C)
00628    #define BN_MP_INIT_COPY_C
00629    #define BN_MP_CLAMP_C
00630    #define BN_MP_EXCH_C
00631    #define BN_MP_CLEAR_C
00632 #endif
00633 
00634 #if defined(BN_MP_PRIME_FERMAT_C)
00635    #define BN_MP_CMP_D_C
00636    #define BN_MP_INIT_C
00637    #define BN_MP_EXPTMOD_C
00638    #define BN_MP_CMP_C
00639    #define BN_MP_CLEAR_C
00640 #endif
00641 
00642 #if defined(BN_MP_PRIME_IS_DIVISIBLE_C)
00643    #define BN_MP_MOD_D_C
00644 #endif
00645 
00646 #if defined(BN_MP_PRIME_IS_PRIME_C)
00647    #define BN_MP_CMP_D_C
00648    #define BN_MP_PRIME_IS_DIVISIBLE_C
00649    #define BN_MP_INIT_C
00650    #define BN_MP_SET_C
00651    #define BN_MP_PRIME_MILLER_RABIN_C
00652    #define BN_MP_CLEAR_C
00653 #endif
00654 
00655 #if defined(BN_MP_PRIME_MILLER_RABIN_C)
00656    #define BN_MP_CMP_D_C
00657    #define BN_MP_INIT_COPY_C
00658    #define BN_MP_SUB_D_C
00659    #define BN_MP_CNT_LSB_C
00660    #define BN_MP_DIV_2D_C
00661    #define BN_MP_EXPTMOD_C
00662    #define BN_MP_CMP_C
00663    #define BN_MP_SQRMOD_C
00664    #define BN_MP_CLEAR_C
00665 #endif
00666 
00667 #if defined(BN_MP_PRIME_NEXT_PRIME_C)
00668    #define BN_MP_CMP_D_C
00669    #define BN_MP_SET_C
00670    #define BN_MP_SUB_D_C
00671    #define BN_MP_ISEVEN_C
00672    #define BN_MP_MOD_D_C
00673    #define BN_MP_INIT_C
00674    #define BN_MP_ADD_D_C
00675    #define BN_MP_PRIME_MILLER_RABIN_C
00676    #define BN_MP_CLEAR_C
00677 #endif
00678 
00679 #if defined(BN_MP_PRIME_RABIN_MILLER_TRIALS_C)
00680 #endif
00681 
00682 #if defined(BN_MP_PRIME_RANDOM_EX_C)
00683    #define BN_MP_READ_UNSIGNED_BIN_C
00684    #define BN_MP_PRIME_IS_PRIME_C
00685    #define BN_MP_SUB_D_C
00686    #define BN_MP_DIV_2_C
00687    #define BN_MP_MUL_2_C
00688    #define BN_MP_ADD_D_C
00689 #endif
00690 
00691 #if defined(BN_MP_RADIX_SIZE_C)
00692    #define BN_MP_COUNT_BITS_C
00693    #define BN_MP_INIT_COPY_C
00694    #define BN_MP_ISZERO_C
00695    #define BN_MP_DIV_D_C
00696    #define BN_MP_CLEAR_C
00697 #endif
00698 
00699 #if defined(BN_MP_RADIX_SMAP_C)
00700    #define BN_MP_S_RMAP_C
00701 #endif
00702 
00703 #if defined(BN_MP_RAND_C)
00704    #define BN_MP_ZERO_C
00705    #define BN_MP_ADD_D_C
00706    #define BN_MP_LSHD_C
00707 #endif
00708 
00709 #if defined(BN_MP_READ_RADIX_C)
00710    #define BN_MP_ZERO_C
00711    #define BN_MP_S_RMAP_C
00712    #define BN_MP_RADIX_SMAP_C
00713    #define BN_MP_MUL_D_C
00714    #define BN_MP_ADD_D_C
00715    #define BN_MP_ISZERO_C
00716 #endif
00717 
00718 #if defined(BN_MP_READ_SIGNED_BIN_C)
00719    #define BN_MP_READ_UNSIGNED_BIN_C
00720 #endif
00721 
00722 #if defined(BN_MP_READ_UNSIGNED_BIN_C)
00723    #define BN_MP_GROW_C
00724    #define BN_MP_ZERO_C
00725    #define BN_MP_MUL_2D_C
00726    #define BN_MP_CLAMP_C
00727 #endif
00728 
00729 #if defined(BN_MP_REDUCE_C)
00730    #define BN_MP_REDUCE_SETUP_C
00731    #define BN_MP_INIT_COPY_C
00732    #define BN_MP_RSHD_C
00733    #define BN_MP_MUL_C
00734    #define BN_S_MP_MUL_HIGH_DIGS_C
00735    #define BN_FAST_S_MP_MUL_HIGH_DIGS_C
00736    #define BN_MP_MOD_2D_C
00737    #define BN_S_MP_MUL_DIGS_C
00738    #define BN_MP_SUB_C
00739    #define BN_MP_CMP_D_C
00740    #define BN_MP_SET_C
00741    #define BN_MP_LSHD_C
00742    #define BN_MP_ADD_C
00743    #define BN_MP_CMP_C
00744    #define BN_S_MP_SUB_C
00745    #define BN_MP_CLEAR_C
00746 #endif
00747 
00748 #if defined(BN_MP_REDUCE_2K_C)
00749    #define BN_MP_INIT_C
00750    #define BN_MP_COUNT_BITS_C
00751    #define BN_MP_DIV_2D_C
00752    #define BN_MP_MUL_D_C
00753    #define BN_S_MP_ADD_C
00754    #define BN_MP_CMP_MAG_C
00755    #define BN_S_MP_SUB_C
00756    #define BN_MP_CLEAR_C
00757 #endif
00758 
00759 #if defined(BN_MP_REDUCE_2K_L_C)
00760    #define BN_MP_INIT_C
00761    #define BN_MP_COUNT_BITS_C
00762    #define BN_MP_DIV_2D_C
00763    #define BN_MP_MUL_C
00764    #define BN_S_MP_ADD_C
00765    #define BN_MP_CMP_MAG_C
00766    #define BN_S_MP_SUB_C
00767    #define BN_MP_CLEAR_C
00768 #endif
00769 
00770 #if defined(BN_MP_REDUCE_2K_SETUP_C)
00771    #define BN_MP_INIT_C
00772    #define BN_MP_COUNT_BITS_C
00773    #define BN_MP_2EXPT_C
00774    #define BN_MP_CLEAR_C
00775    #define BN_S_MP_SUB_C
00776 #endif
00777 
00778 #if defined(BN_MP_REDUCE_2K_SETUP_L_C)
00779    #define BN_MP_INIT_C
00780    #define BN_MP_2EXPT_C
00781    #define BN_MP_COUNT_BITS_C
00782    #define BN_S_MP_SUB_C
00783    #define BN_MP_CLEAR_C
00784 #endif
00785 
00786 #if defined(BN_MP_REDUCE_IS_2K_C)
00787    #define BN_MP_REDUCE_2K_C
00788    #define BN_MP_COUNT_BITS_C
00789 #endif
00790 
00791 #if defined(BN_MP_REDUCE_IS_2K_L_C)
00792 #endif
00793 
00794 #if defined(BN_MP_REDUCE_SETUP_C)
00795    #define BN_MP_2EXPT_C
00796    #define BN_MP_DIV_C
00797 #endif
00798 
00799 #if defined(BN_MP_RSHD_C)
00800    #define BN_MP_ZERO_C
00801 #endif
00802 
00803 #if defined(BN_MP_SET_C)
00804    #define BN_MP_ZERO_C
00805 #endif
00806 
00807 #if defined(BN_MP_SET_INT_C)
00808    #define BN_MP_ZERO_C
00809    #define BN_MP_MUL_2D_C
00810    #define BN_MP_CLAMP_C
00811 #endif
00812 
00813 #if defined(BN_MP_SHRINK_C)
00814 #endif
00815 
00816 #if defined(BN_MP_SIGNED_BIN_SIZE_C)
00817    #define BN_MP_UNSIGNED_BIN_SIZE_C
00818 #endif
00819 
00820 #if defined(BN_MP_SQR_C)
00821    #define BN_MP_TOOM_SQR_C
00822    #define BN_MP_KARATSUBA_SQR_C
00823    #define BN_FAST_S_MP_SQR_C
00824    #define BN_S_MP_SQR_C
00825 #endif
00826 
00827 #if defined(BN_MP_SQRMOD_C)
00828    #define BN_MP_INIT_C
00829    #define BN_MP_SQR_C
00830    #define BN_MP_CLEAR_C
00831    #define BN_MP_MOD_C
00832 #endif
00833 
00834 #if defined(BN_MP_SQRT_C)
00835    #define BN_MP_N_ROOT_C
00836    #define BN_MP_ISZERO_C
00837    #define BN_MP_ZERO_C
00838    #define BN_MP_INIT_COPY_C
00839    #define BN_MP_RSHD_C
00840    #define BN_MP_DIV_C
00841    #define BN_MP_ADD_C
00842    #define BN_MP_DIV_2_C
00843    #define BN_MP_CMP_MAG_C
00844    #define BN_MP_EXCH_C
00845    #define BN_MP_CLEAR_C
00846 #endif
00847 
00848 #if defined(BN_MP_SUB_C)
00849    #define BN_S_MP_ADD_C
00850    #define BN_MP_CMP_MAG_C
00851    #define BN_S_MP_SUB_C
00852 #endif
00853 
00854 #if defined(BN_MP_SUB_D_C)
00855    #define BN_MP_GROW_C
00856    #define BN_MP_ADD_D_C
00857    #define BN_MP_CLAMP_C
00858 #endif
00859 
00860 #if defined(BN_MP_SUBMOD_C)
00861    #define BN_MP_INIT_C
00862    #define BN_MP_SUB_C
00863    #define BN_MP_CLEAR_C
00864    #define BN_MP_MOD_C
00865 #endif
00866 
00867 #if defined(BN_MP_TO_SIGNED_BIN_C)
00868    #define BN_MP_TO_UNSIGNED_BIN_C
00869 #endif
00870 
00871 #if defined(BN_MP_TO_SIGNED_BIN_N_C)
00872    #define BN_MP_SIGNED_BIN_SIZE_C
00873    #define BN_MP_TO_SIGNED_BIN_C
00874 #endif
00875 
00876 #if defined(BN_MP_TO_UNSIGNED_BIN_C)
00877    #define BN_MP_INIT_COPY_C
00878    #define BN_MP_ISZERO_C
00879    #define BN_MP_DIV_2D_C
00880    #define BN_MP_CLEAR_C
00881 #endif
00882 
00883 #if defined(BN_MP_TO_UNSIGNED_BIN_N_C)
00884    #define BN_MP_UNSIGNED_BIN_SIZE_C
00885    #define BN_MP_TO_UNSIGNED_BIN_C
00886 #endif
00887 
00888 #if defined(BN_MP_TOOM_MUL_C)
00889    #define BN_MP_INIT_MULTI_C
00890    #define BN_MP_MOD_2D_C
00891    #define BN_MP_COPY_C
00892    #define BN_MP_RSHD_C
00893    #define BN_MP_MUL_C
00894    #define BN_MP_MUL_2_C
00895    #define BN_MP_ADD_C
00896    #define BN_MP_SUB_C
00897    #define BN_MP_DIV_2_C
00898    #define BN_MP_MUL_2D_C
00899    #define BN_MP_MUL_D_C
00900    #define BN_MP_DIV_3_C
00901    #define BN_MP_LSHD_C
00902    #define BN_MP_CLEAR_MULTI_C
00903 #endif
00904 
00905 #if defined(BN_MP_TOOM_SQR_C)
00906    #define BN_MP_INIT_MULTI_C
00907    #define BN_MP_MOD_2D_C
00908    #define BN_MP_COPY_C
00909    #define BN_MP_RSHD_C
00910    #define BN_MP_SQR_C
00911    #define BN_MP_MUL_2_C
00912    #define BN_MP_ADD_C
00913    #define BN_MP_SUB_C
00914    #define BN_MP_DIV_2_C
00915    #define BN_MP_MUL_2D_C
00916    #define BN_MP_MUL_D_C
00917    #define BN_MP_DIV_3_C
00918    #define BN_MP_LSHD_C
00919    #define BN_MP_CLEAR_MULTI_C
00920 #endif
00921 
00922 #if defined(BN_MP_TORADIX_C)
00923    #define BN_MP_ISZERO_C
00924    #define BN_MP_INIT_COPY_C
00925    #define BN_MP_DIV_D_C
00926    #define BN_MP_CLEAR_C
00927    #define BN_MP_S_RMAP_C
00928 #endif
00929 
00930 #if defined(BN_MP_TORADIX_N_C)
00931    #define BN_MP_ISZERO_C
00932    #define BN_MP_INIT_COPY_C
00933    #define BN_MP_DIV_D_C
00934    #define BN_MP_CLEAR_C
00935    #define BN_MP_S_RMAP_C
00936 #endif
00937 
00938 #if defined(BN_MP_UNSIGNED_BIN_SIZE_C)
00939    #define BN_MP_COUNT_BITS_C
00940 #endif
00941 
00942 #if defined(BN_MP_XOR_C)
00943    #define BN_MP_INIT_COPY_C
00944    #define BN_MP_CLAMP_C
00945    #define BN_MP_EXCH_C
00946    #define BN_MP_CLEAR_C
00947 #endif
00948 
00949 #if defined(BN_MP_ZERO_C)
00950 #endif
00951 
00952 #if defined(BN_PRIME_TAB_C)
00953 #endif
00954 
00955 #if defined(BN_REVERSE_C)
00956 #endif
00957 
00958 #if defined(BN_S_MP_ADD_C)
00959    #define BN_MP_GROW_C
00960    #define BN_MP_CLAMP_C
00961 #endif
00962 
00963 #if defined(BN_S_MP_EXPTMOD_C)
00964    #define BN_MP_COUNT_BITS_C
00965    #define BN_MP_INIT_C
00966    #define BN_MP_CLEAR_C
00967    #define BN_MP_REDUCE_SETUP_C
00968    #define BN_MP_REDUCE_C
00969    #define BN_MP_REDUCE_2K_SETUP_L_C
00970    #define BN_MP_REDUCE_2K_L_C
00971    #define BN_MP_MOD_C
00972    #define BN_MP_COPY_C
00973    #define BN_MP_SQR_C
00974    #define BN_MP_MUL_C
00975    #define BN_MP_SET_C
00976    #define BN_MP_EXCH_C
00977 #endif
00978 
00979 #if defined(BN_S_MP_MUL_DIGS_C)
00980    #define BN_FAST_S_MP_MUL_DIGS_C
00981    #define BN_MP_INIT_SIZE_C
00982    #define BN_MP_CLAMP_C
00983    #define BN_MP_EXCH_C
00984    #define BN_MP_CLEAR_C
00985 #endif
00986 
00987 #if defined(BN_S_MP_MUL_HIGH_DIGS_C)
00988    #define BN_FAST_S_MP_MUL_HIGH_DIGS_C
00989    #define BN_MP_INIT_SIZE_C
00990    #define BN_MP_CLAMP_C
00991    #define BN_MP_EXCH_C
00992    #define BN_MP_CLEAR_C
00993 #endif
00994 
00995 #if defined(BN_S_MP_SQR_C)
00996    #define BN_MP_INIT_SIZE_C
00997    #define BN_MP_CLAMP_C
00998    #define BN_MP_EXCH_C
00999    #define BN_MP_CLEAR_C
01000 #endif
01001 
01002 #if defined(BN_S_MP_SUB_C)
01003    #define BN_MP_GROW_C
01004    #define BN_MP_CLAMP_C
01005 #endif
01006 
01007 #if defined(BNCORE_C)
01008 #endif
01009 
01010 #ifdef LTM3
01011 #define LTM_LAST
01012 #endif
01013 #include "mpi_superclass.h"
01014 #include "mpi_class.h"
01015 #else
01016 #define LTM_LAST
01017 #endif
01018