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