shorter headers

This commit is contained in:
Daniel Mendler 2019-04-07 15:29:11 +02:00
parent 70a30ae7a7
commit ff56140462
No known key found for this signature in database
GPG Key ID: D88ADB2A2693CA43
149 changed files with 302 additions and 1653 deletions

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_ERROR_C #ifdef BN_ERROR_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
static const struct { static const struct {
int code; int code;

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_FAST_MP_INVMOD_C #ifdef BN_FAST_MP_INVMOD_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* computes the modular inverse via binary extended euclidean algorithm, /* computes the modular inverse via binary extended euclidean algorithm,
* that is c = 1/a mod b * that is c = 1/a mod b

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_FAST_MP_MONTGOMERY_REDUCE_C #ifdef BN_FAST_MP_MONTGOMERY_REDUCE_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* computes xR**-1 == x (mod N) via Montgomery Reduction /* computes xR**-1 == x (mod N) via Montgomery Reduction
* *

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_FAST_S_MP_MUL_DIGS_C #ifdef BN_FAST_S_MP_MUL_DIGS_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* Fast (comba) multiplier /* Fast (comba) multiplier
* *

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_FAST_S_MP_MUL_HIGH_DIGS_C #ifdef BN_FAST_S_MP_MUL_HIGH_DIGS_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* this is a modified version of fast_s_mul_digs that only produces /* this is a modified version of fast_s_mul_digs that only produces
* output digits *above* digs. See the comments for fast_s_mul_digs * output digits *above* digs. See the comments for fast_s_mul_digs

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_FAST_S_MP_SQR_C #ifdef BN_FAST_S_MP_SQR_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* the jist of squaring... /* the jist of squaring...
* you do like mult except the offset of the tmpx [one that * you do like mult except the offset of the tmpx [one that

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_2EXPT_C #ifdef BN_MP_2EXPT_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* computes a = 2**b /* computes a = 2**b
* *

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_ABS_C #ifdef BN_MP_ABS_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* b = |a| /* b = |a|
* *

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_ADD_C #ifdef BN_MP_ADD_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* high level addition (handles signs) */ /* high level addition (handles signs) */
int mp_add(const mp_int *a, const mp_int *b, mp_int *c) int mp_add(const mp_int *a, const mp_int *b, mp_int *c)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_ADD_D_C #ifdef BN_MP_ADD_D_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* single digit addition */ /* single digit addition */
int mp_add_d(const mp_int *a, mp_digit b, mp_int *c) int mp_add_d(const mp_int *a, mp_digit b, mp_int *c)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_ADDMOD_C #ifdef BN_MP_ADDMOD_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* d = a + b (mod c) */ /* d = a + b (mod c) */
int mp_addmod(const mp_int *a, const mp_int *b, const mp_int *c, mp_int *d) int mp_addmod(const mp_int *a, const mp_int *b, const mp_int *c, mp_int *d)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_AND_C #ifdef BN_MP_AND_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* AND two ints together */ /* AND two ints together */
int mp_and(const mp_int *a, const mp_int *b, mp_int *c) int mp_and(const mp_int *a, const mp_int *b, mp_int *c)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_CLAMP_C #ifdef BN_MP_CLAMP_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* trim unused digits /* trim unused digits
* *

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_CLEAR_C #ifdef BN_MP_CLEAR_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* clear one (frees) */ /* clear one (frees) */
void mp_clear(mp_int *a) void mp_clear(mp_int *a)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_CLEAR_MULTI_C #ifdef BN_MP_CLEAR_MULTI_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
#include <stdarg.h> #include <stdarg.h>

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_CMP_C #ifdef BN_MP_CMP_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* compare two ints (signed)*/ /* compare two ints (signed)*/
int mp_cmp(const mp_int *a, const mp_int *b) int mp_cmp(const mp_int *a, const mp_int *b)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_CMP_D_C #ifdef BN_MP_CMP_D_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* compare a digit */ /* compare a digit */
int mp_cmp_d(const mp_int *a, mp_digit b) int mp_cmp_d(const mp_int *a, mp_digit b)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_CMP_MAG_C #ifdef BN_MP_CMP_MAG_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* compare maginitude of two ints (unsigned) */ /* compare maginitude of two ints (unsigned) */
int mp_cmp_mag(const mp_int *a, const mp_int *b) int mp_cmp_mag(const mp_int *a, const mp_int *b)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_CNT_LSB_C #ifdef BN_MP_CNT_LSB_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
static const int lnz[16] = { static const int lnz[16] = {
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_COMPLEMENT_C #ifdef BN_MP_COMPLEMENT_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* b = ~a */ /* b = ~a */
int mp_complement(const mp_int *a, mp_int *b) int mp_complement(const mp_int *a, mp_int *b)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_COPY_C #ifdef BN_MP_COPY_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* copy, b = a */ /* copy, b = a */
int mp_copy(const mp_int *a, mp_int *b) int mp_copy(const mp_int *a, mp_int *b)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_COUNT_BITS_C #ifdef BN_MP_COUNT_BITS_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* returns the number of bits in an int */ /* returns the number of bits in an int */
int mp_count_bits(const mp_int *a) int mp_count_bits(const mp_int *a)

View File

@ -1,17 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_DECR_C #ifdef BN_MP_DECR_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* Decrement "a" by one like "a--". Changes input! */ /* Decrement "a" by one like "a--". Changes input! */
int mp_decr(mp_int *a) int mp_decr(mp_int *a)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_DIV_C #ifdef BN_MP_DIV_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
#ifdef BN_MP_DIV_SMALL #ifdef BN_MP_DIV_SMALL

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_DIV_2_C #ifdef BN_MP_DIV_2_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* b = a/2 */ /* b = a/2 */
int mp_div_2(const mp_int *a, mp_int *b) int mp_div_2(const mp_int *a, mp_int *b)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_DIV_2D_C #ifdef BN_MP_DIV_2D_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* shift right by a certain bit count (store quotient in c, optional remainder in d) */ /* shift right by a certain bit count (store quotient in c, optional remainder in d) */
int mp_div_2d(const mp_int *a, int b, mp_int *c, mp_int *d) int mp_div_2d(const mp_int *a, int b, mp_int *c, mp_int *d)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_DIV_3_C #ifdef BN_MP_DIV_3_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* divide by three (based on routine from MPI and the GMP manual) */ /* divide by three (based on routine from MPI and the GMP manual) */
int mp_div_3(const mp_int *a, mp_int *c, mp_digit *d) int mp_div_3(const mp_int *a, mp_int *c, mp_digit *d)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_DIV_D_C #ifdef BN_MP_DIV_D_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
static int s_is_power_of_two(mp_digit b, int *p) static int s_is_power_of_two(mp_digit b, int *p)
{ {

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_DR_IS_MODULUS_C #ifdef BN_MP_DR_IS_MODULUS_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* determines if a number is a valid DR modulus */ /* determines if a number is a valid DR modulus */
int mp_dr_is_modulus(const mp_int *a) int mp_dr_is_modulus(const mp_int *a)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_DR_REDUCE_C #ifdef BN_MP_DR_REDUCE_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* reduce "x" in place modulo "n" using the Diminished Radix algorithm. /* reduce "x" in place modulo "n" using the Diminished Radix algorithm.
* *

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_DR_SETUP_C #ifdef BN_MP_DR_SETUP_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* determines the setup value */ /* determines the setup value */
void mp_dr_setup(const mp_int *a, mp_digit *d) void mp_dr_setup(const mp_int *a, mp_digit *d)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_EXCH_C #ifdef BN_MP_EXCH_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* swap the elements of two integers, for cases where you can't simply swap the /* swap the elements of two integers, for cases where you can't simply swap the
* mp_int pointers around * mp_int pointers around

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_EXPORT_C #ifdef BN_MP_EXPORT_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* based on gmp's mpz_export. /* based on gmp's mpz_export.
* see http://gmplib.org/manual/Integer-Import-and-Export.html * see http://gmplib.org/manual/Integer-Import-and-Export.html

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_EXPT_D_C #ifdef BN_MP_EXPT_D_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* wrapper function for mp_expt_d_ex() */ /* wrapper function for mp_expt_d_ex() */
int mp_expt_d(const mp_int *a, mp_digit b, mp_int *c) int mp_expt_d(const mp_int *a, mp_digit b, mp_int *c)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_EXPT_D_EX_C #ifdef BN_MP_EXPT_D_EX_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* calculate c = a**b using a square-multiply algorithm */ /* calculate c = a**b using a square-multiply algorithm */
int mp_expt_d_ex(const mp_int *a, mp_digit b, mp_int *c, int fast) int mp_expt_d_ex(const mp_int *a, mp_digit b, mp_int *c, int fast)

View File

@ -1,17 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_EXPTMOD_C #ifdef BN_MP_EXPTMOD_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* this is a shell function that calls either the normal or Montgomery /* this is a shell function that calls either the normal or Montgomery
* exptmod functions. Originally the call to the montgomery code was * exptmod functions. Originally the call to the montgomery code was

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_EXPTMOD_FAST_C #ifdef BN_MP_EXPTMOD_FAST_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* computes Y == G**X mod P, HAC pp.616, Algorithm 14.85 /* computes Y == G**X mod P, HAC pp.616, Algorithm 14.85
* *

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_EXTEUCLID_C #ifdef BN_MP_EXTEUCLID_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* Extended euclidean algorithm of (a, b) produces /* Extended euclidean algorithm of (a, b) produces
a*u1 + b*u2 = u3 a*u1 + b*u2 = u3

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_FREAD_C #ifdef BN_MP_FREAD_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
#ifndef LTM_NO_FILE #ifndef LTM_NO_FILE
/* read a bigint from a file stream in ASCII */ /* read a bigint from a file stream in ASCII */

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_FWRITE_C #ifdef BN_MP_FWRITE_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
#ifndef LTM_NO_FILE #ifndef LTM_NO_FILE
int mp_fwrite(const mp_int *a, int radix, FILE *stream) int mp_fwrite(const mp_int *a, int radix, FILE *stream)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_GCD_C #ifdef BN_MP_GCD_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* Greatest Common Divisor using the binary method */ /* Greatest Common Divisor using the binary method */
int mp_gcd(const mp_int *a, const mp_int *b, mp_int *c) int mp_gcd(const mp_int *a, const mp_int *b, mp_int *c)

View File

@ -1,17 +1,8 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_GET_BIT_C #ifdef BN_MP_GET_BIT_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* Checks the bit at position b and returns MP_YES /* Checks the bit at position b and returns MP_YES
if the bit is 1, MP_NO if it is 0 and MP_VAL if the bit is 1, MP_NO if it is 0 and MP_VAL

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_GET_DOUBLE_C #ifdef BN_MP_GET_DOUBLE_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
double mp_get_double(const mp_int *a) double mp_get_double(const mp_int *a)
{ {

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_GET_INT_C #ifdef BN_MP_GET_INT_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* get the lower 32-bits of an mp_int */ /* get the lower 32-bits of an mp_int */
unsigned long mp_get_int(const mp_int *a) unsigned long mp_get_int(const mp_int *a)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_GET_LONG_C #ifdef BN_MP_GET_LONG_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* get the lower unsigned long of an mp_int, platform dependent */ /* get the lower unsigned long of an mp_int, platform dependent */
unsigned long mp_get_long(const mp_int *a) unsigned long mp_get_long(const mp_int *a)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_GET_LONG_LONG_C #ifdef BN_MP_GET_LONG_LONG_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* get the lower unsigned long long of an mp_int, platform dependent */ /* get the lower unsigned long long of an mp_int, platform dependent */
unsigned long long mp_get_long_long(const mp_int *a) unsigned long long mp_get_long_long(const mp_int *a)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_GROW_C #ifdef BN_MP_GROW_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* grow as required */ /* grow as required */
int mp_grow(mp_int *a, int size) int mp_grow(mp_int *a, int size)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_IMPORT_C #ifdef BN_MP_IMPORT_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* based on gmp's mpz_import. /* based on gmp's mpz_import.
* see http://gmplib.org/manual/Integer-Import-and-Export.html * see http://gmplib.org/manual/Integer-Import-and-Export.html

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_INCR_C #ifdef BN_MP_INCR_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* Increment "a" by one like "a++". Changes input! */ /* Increment "a" by one like "a++". Changes input! */
int mp_incr(mp_int *a) int mp_incr(mp_int *a)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_INIT_C #ifdef BN_MP_INIT_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* init a new mp_int */ /* init a new mp_int */
int mp_init(mp_int *a) int mp_init(mp_int *a)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_INIT_COPY_C #ifdef BN_MP_INIT_COPY_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* creates "a" then copies b into it */ /* creates "a" then copies b into it */
int mp_init_copy(mp_int *a, const mp_int *b) int mp_init_copy(mp_int *a, const mp_int *b)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_INIT_MULTI_C #ifdef BN_MP_INIT_MULTI_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
#include <stdarg.h> #include <stdarg.h>

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_INIT_SET_C #ifdef BN_MP_INIT_SET_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* initialize and set a digit */ /* initialize and set a digit */
int mp_init_set(mp_int *a, mp_digit b) int mp_init_set(mp_int *a, mp_digit b)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_INIT_SET_INT_C #ifdef BN_MP_INIT_SET_INT_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* initialize and set a digit */ /* initialize and set a digit */
int mp_init_set_int(mp_int *a, unsigned long b) int mp_init_set_int(mp_int *a, unsigned long b)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_INIT_SIZE_C #ifdef BN_MP_INIT_SIZE_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* init an mp_init for a given size */ /* init an mp_init for a given size */
int mp_init_size(mp_int *a, int size) int mp_init_size(mp_int *a, int size)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_INVMOD_C #ifdef BN_MP_INVMOD_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* hac 14.61, pp608 */ /* hac 14.61, pp608 */
int mp_invmod(const mp_int *a, const mp_int *b, mp_int *c) int mp_invmod(const mp_int *a, const mp_int *b, mp_int *c)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_INVMOD_SLOW_C #ifdef BN_MP_INVMOD_SLOW_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* hac 14.61, pp608 */ /* hac 14.61, pp608 */
int mp_invmod_slow(const mp_int *a, const mp_int *b, mp_int *c) int mp_invmod_slow(const mp_int *a, const mp_int *b, mp_int *c)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_IS_SQUARE_C #ifdef BN_MP_IS_SQUARE_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* Check if remainders are possible squares - fast exclude non-squares */ /* Check if remainders are possible squares - fast exclude non-squares */
static const char rem_128[128] = { static const char rem_128[128] = {

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_ISEVEN_C #ifdef BN_MP_ISEVEN_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
int mp_iseven(const mp_int *a) int mp_iseven(const mp_int *a)
{ {

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_ISODD_C #ifdef BN_MP_ISODD_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
int mp_isodd(const mp_int *a) int mp_isodd(const mp_int *a)
{ {

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_JACOBI_C #ifdef BN_MP_JACOBI_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* computes the jacobi c = (a | n) (or Legendre if n is prime) /* computes the jacobi c = (a | n) (or Legendre if n is prime)
* Kept for legacy reasons, please use mp_kronecker() instead * Kept for legacy reasons, please use mp_kronecker() instead

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_KARATSUBA_MUL_C #ifdef BN_MP_KARATSUBA_MUL_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* c = |a| * |b| using Karatsuba Multiplication using /* c = |a| * |b| using Karatsuba Multiplication using
* three half size multiplications * three half size multiplications

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_KARATSUBA_SQR_C #ifdef BN_MP_KARATSUBA_SQR_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* Karatsuba squaring, computes b = a*a using three /* Karatsuba squaring, computes b = a*a using three
* half size squarings * half size squarings

View File

@ -1,17 +1,8 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_KRONECKER_C #ifdef BN_MP_KRONECKER_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* /*
Kronecker symbol (a|p) Kronecker symbol (a|p)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_LCM_C #ifdef BN_MP_LCM_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* computes least common multiple as |a*b|/(a, b) */ /* computes least common multiple as |a*b|/(a, b) */
int mp_lcm(const mp_int *a, const mp_int *b, mp_int *c) int mp_lcm(const mp_int *a, const mp_int *b, mp_int *c)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_LSHD_C #ifdef BN_MP_LSHD_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* shift left a certain amount of digits */ /* shift left a certain amount of digits */
int mp_lshd(mp_int *a, int b) int mp_lshd(mp_int *a, int b)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_MOD_C #ifdef BN_MP_MOD_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* c = a mod b, 0 <= c < b if b > 0, b < c <= 0 if b < 0 */ /* c = a mod b, 0 <= c < b if b > 0, b < c <= 0 if b < 0 */
int mp_mod(const mp_int *a, const mp_int *b, mp_int *c) int mp_mod(const mp_int *a, const mp_int *b, mp_int *c)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_MOD_2D_C #ifdef BN_MP_MOD_2D_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* calc a value mod 2**b */ /* calc a value mod 2**b */
int mp_mod_2d(const mp_int *a, int b, mp_int *c) int mp_mod_2d(const mp_int *a, int b, mp_int *c)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_MOD_D_C #ifdef BN_MP_MOD_D_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
int mp_mod_d(const mp_int *a, mp_digit b, mp_digit *c) int mp_mod_d(const mp_int *a, mp_digit b, mp_digit *c)
{ {

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_MONTGOMERY_CALC_NORMALIZATION_C #ifdef BN_MP_MONTGOMERY_CALC_NORMALIZATION_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* /*
* shifts with subtractions when the result is greater than b. * shifts with subtractions when the result is greater than b.

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_MONTGOMERY_REDUCE_C #ifdef BN_MP_MONTGOMERY_REDUCE_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* computes xR**-1 == x (mod N) via Montgomery Reduction */ /* computes xR**-1 == x (mod N) via Montgomery Reduction */
int mp_montgomery_reduce(mp_int *x, const mp_int *n, mp_digit rho) int mp_montgomery_reduce(mp_int *x, const mp_int *n, mp_digit rho)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_MONTGOMERY_SETUP_C #ifdef BN_MP_MONTGOMERY_SETUP_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* setups the montgomery reduction stuff */ /* setups the montgomery reduction stuff */
int mp_montgomery_setup(const mp_int *n, mp_digit *rho) int mp_montgomery_setup(const mp_int *n, mp_digit *rho)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_MUL_C #ifdef BN_MP_MUL_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* high level multiplication (handles sign) */ /* high level multiplication (handles sign) */
int mp_mul(const mp_int *a, const mp_int *b, mp_int *c) int mp_mul(const mp_int *a, const mp_int *b, mp_int *c)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_MUL_2_C #ifdef BN_MP_MUL_2_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* b = a*2 */ /* b = a*2 */
int mp_mul_2(const mp_int *a, mp_int *b) int mp_mul_2(const mp_int *a, mp_int *b)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_MUL_2D_C #ifdef BN_MP_MUL_2D_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* shift left by a certain bit count */ /* shift left by a certain bit count */
int mp_mul_2d(const mp_int *a, int b, mp_int *c) int mp_mul_2d(const mp_int *a, int b, mp_int *c)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_MUL_D_C #ifdef BN_MP_MUL_D_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* multiply by a digit */ /* multiply by a digit */
int mp_mul_d(const mp_int *a, mp_digit b, mp_int *c) int mp_mul_d(const mp_int *a, mp_digit b, mp_int *c)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_MULMOD_C #ifdef BN_MP_MULMOD_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* d = a * b (mod c) */ /* d = a * b (mod c) */
int mp_mulmod(const mp_int *a, const mp_int *b, const mp_int *c, mp_int *d) int mp_mulmod(const mp_int *a, const mp_int *b, const mp_int *c, mp_int *d)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_N_ROOT_C #ifdef BN_MP_N_ROOT_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* wrapper function for mp_n_root_ex() /* wrapper function for mp_n_root_ex()
* computes c = (a)**(1/b) such that (c)**b <= a and (c+1)**b > a * computes c = (a)**(1/b) such that (c)**b <= a and (c+1)**b > a

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_N_ROOT_EX_C #ifdef BN_MP_N_ROOT_EX_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* find the n'th root of an integer /* find the n'th root of an integer
* *

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_NEG_C #ifdef BN_MP_NEG_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* b = -a */ /* b = -a */
int mp_neg(const mp_int *a, mp_int *b) int mp_neg(const mp_int *a, mp_int *b)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_OR_C #ifdef BN_MP_OR_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* OR two ints together */ /* OR two ints together */
int mp_or(const mp_int *a, const mp_int *b, mp_int *c) int mp_or(const mp_int *a, const mp_int *b, mp_int *c)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_PRIME_FERMAT_C #ifdef BN_MP_PRIME_FERMAT_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* performs one Fermat test. /* performs one Fermat test.
* *

View File

@ -1,17 +1,8 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_PRIME_FROBENIUS_UNDERWOOD_C #ifdef BN_MP_PRIME_FROBENIUS_UNDERWOOD_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* /*
* See file bn_mp_prime_is_prime.c or the documentation in doc/bn.tex for the details * See file bn_mp_prime_is_prime.c or the documentation in doc/bn.tex for the details

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_PRIME_IS_DIVISIBLE_C #ifdef BN_MP_PRIME_IS_DIVISIBLE_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* determines if an integers is divisible by one /* determines if an integers is divisible by one
* of the first PRIME_SIZE primes or not * of the first PRIME_SIZE primes or not

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_PRIME_IS_PRIME_C #ifdef BN_MP_PRIME_IS_PRIME_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* portable integer log of two with small footprint */ /* portable integer log of two with small footprint */
static unsigned int s_floor_ilog2(int value) static unsigned int s_floor_ilog2(int value)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_PRIME_MILLER_RABIN_C #ifdef BN_MP_PRIME_MILLER_RABIN_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* Miller-Rabin test of "a" to the base of "b" as described in /* Miller-Rabin test of "a" to the base of "b" as described in
* HAC pp. 139 Algorithm 4.24 * HAC pp. 139 Algorithm 4.24

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_PRIME_NEXT_PRIME_C #ifdef BN_MP_PRIME_NEXT_PRIME_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* finds the next prime after the number "a" using "t" trials /* finds the next prime after the number "a" using "t" trials
* of Miller-Rabin. * of Miller-Rabin.

View File

@ -1,17 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_PRIME_RABIN_MILLER_TRIALS_C #ifdef BN_MP_PRIME_RABIN_MILLER_TRIALS_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
static const struct { static const struct {
int k, t; int k, t;

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_PRIME_RANDOM_EX_C #ifdef BN_MP_PRIME_RANDOM_EX_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* makes a truly random prime of a given size (bits), /* makes a truly random prime of a given size (bits),
* *

View File

@ -1,17 +1,8 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_PRIME_STRONG_LUCAS_SELFRIDGE_C #ifdef BN_MP_PRIME_STRONG_LUCAS_SELFRIDGE_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* /*
* See file bn_mp_prime_is_prime.c or the documentation in doc/bn.tex for the details * See file bn_mp_prime_is_prime.c or the documentation in doc/bn.tex for the details

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_RADIX_SIZE_C #ifdef BN_MP_RADIX_SIZE_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* returns size of ASCII reprensentation */ /* returns size of ASCII reprensentation */
int mp_radix_size(const mp_int *a, int radix, int *size) int mp_radix_size(const mp_int *a, int radix, int *size)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_RADIX_SMAP_C #ifdef BN_MP_RADIX_SMAP_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* chars used in radix conversions */ /* chars used in radix conversions */
const char *const mp_s_rmap = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/"; const char *const mp_s_rmap = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/";

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_RAND_C #ifdef BN_MP_RAND_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* First the OS-specific special cases /* First the OS-specific special cases
* - *BSD * - *BSD

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_READ_RADIX_C #ifdef BN_MP_READ_RADIX_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
#define MP_TOUPPER(c) ((((c) >= 'a') && ((c) <= 'z')) ? (((c) + 'A') - 'a') : (c)) #define MP_TOUPPER(c) ((((c) >= 'a') && ((c) <= 'z')) ? (((c) + 'A') - 'a') : (c))

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_READ_SIGNED_BIN_C #ifdef BN_MP_READ_SIGNED_BIN_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* read signed bin, big endian, first byte is 0==positive or 1==negative */ /* read signed bin, big endian, first byte is 0==positive or 1==negative */
int mp_read_signed_bin(mp_int *a, const unsigned char *b, int c) int mp_read_signed_bin(mp_int *a, const unsigned char *b, int c)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_READ_UNSIGNED_BIN_C #ifdef BN_MP_READ_UNSIGNED_BIN_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* reads a unsigned char array, assumes the msb is stored first [big endian] */ /* reads a unsigned char array, assumes the msb is stored first [big endian] */
int mp_read_unsigned_bin(mp_int *a, const unsigned char *b, int c) int mp_read_unsigned_bin(mp_int *a, const unsigned char *b, int c)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_REDUCE_C #ifdef BN_MP_REDUCE_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* reduces x mod m, assumes 0 < x < m**2, mu is /* reduces x mod m, assumes 0 < x < m**2, mu is
* precomputed via mp_reduce_setup. * precomputed via mp_reduce_setup.

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_REDUCE_2K_C #ifdef BN_MP_REDUCE_2K_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* reduces a modulo n where n is of the form 2**p - d */ /* reduces a modulo n where n is of the form 2**p - d */
int mp_reduce_2k(mp_int *a, const mp_int *n, mp_digit d) int mp_reduce_2k(mp_int *a, const mp_int *n, mp_digit d)

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_REDUCE_2K_L_C #ifdef BN_MP_REDUCE_2K_L_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* reduces a modulo n where n is of the form 2**p - d /* reduces a modulo n where n is of the form 2**p - d
This differs from reduce_2k since "d" can be larger This differs from reduce_2k since "d" can be larger

View File

@ -1,16 +1,7 @@
#include "tommath_private.h" #include "tommath_private.h"
#ifdef BN_MP_REDUCE_2K_SETUP_C #ifdef BN_MP_REDUCE_2K_SETUP_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis /* LibTomMath, multiple-precision integer library -- Tom St Denis */
* /* SPDX-License-Identifier: Unlicense */
* LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
* The library was designed directly after the MPI library by
* Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* SPDX-License-Identifier: Unlicense
*/
/* determines the setup value */ /* determines the setup value */
int mp_reduce_2k_setup(const mp_int *a, mp_digit *d) int mp_reduce_2k_setup(const mp_int *a, mp_digit *d)

Some files were not shown because too many files have changed in this diff Show More