cryb-to/lib/mpi
2017-04-06 19:52:23 +02:00
..
cryb-mpi.pc.in Start using pkg-config / pkgconf. 2017-03-07 00:54:46 +01:00
cryb_mpi.c Mechanically bump copyright dates to the date of the latest commit. 2017-02-19 20:07:43 +01:00
cryb_mpi_add.c Slightly improve function descriptions. 2017-04-06 19:51:47 +02:00
cryb_mpi_add_abs.c Implement ffs() / fls() and use the latter to compute the MSB. 2017-04-06 19:52:23 +02:00
cryb_mpi_cmp.c Refactor the comparison predicates, check for identity first. 2017-04-06 19:51:47 +02:00
cryb_mpi_cmp_abs.c Refactor the comparison predicates, check for identity first. 2017-04-06 19:51:47 +02:00
cryb_mpi_cmp_i32.c Add functions for comparing an MPI to an integer. 2017-04-06 19:51:47 +02:00
cryb_mpi_cmp_i64.c Add functions for comparing an MPI to an integer. 2017-04-06 19:51:47 +02:00
cryb_mpi_copy.c Remove unused headers. 2017-04-06 19:51:47 +02:00
cryb_mpi_dec.c Implement fast increment / decrement functions. 2017-04-06 19:52:23 +02:00
cryb_mpi_dec_abs.c Implement fast increment / decrement functions. 2017-04-06 19:52:23 +02:00
cryb_mpi_destroy.c Remove unused headers. 2017-04-06 19:51:47 +02:00
cryb_mpi_eq.c Refactor the comparison predicates, check for identity first. 2017-04-06 19:51:47 +02:00
cryb_mpi_eq_abs.c Refactor the comparison predicates, check for identity first. 2017-04-06 19:51:47 +02:00
cryb_mpi_eq_i32.c Add functions for comparing an MPI to an integer. 2017-04-06 19:51:47 +02:00
cryb_mpi_eq_i64.c Add functions for comparing an MPI to an integer. 2017-04-06 19:51:47 +02:00
cryb_mpi_gcd_abs.c Remove debugging code. 2017-04-06 19:51:47 +02:00
cryb_mpi_grow.c Remove unused headers. 2017-04-06 19:51:47 +02:00
cryb_mpi_impl.h Mechanically bump copyright dates to the date of the latest commit. 2017-02-19 20:07:43 +01:00
cryb_mpi_inc.c Implement fast increment / decrement functions. 2017-04-06 19:52:23 +02:00
cryb_mpi_inc_abs.c Implement fast increment / decrement functions. 2017-04-06 19:52:23 +02:00
cryb_mpi_init.c Remove unused headers. 2017-04-06 19:51:47 +02:00
cryb_mpi_load.c Implement ffs() / fls() and use the latter to compute the MSB. 2017-04-06 19:52:23 +02:00
cryb_mpi_lsb.c Add functions that return the LSB and MSB of an MPI. 2017-04-06 19:51:47 +02:00
cryb_mpi_lshift.c Correct function descriptions. 2017-04-06 19:52:23 +02:00
cryb_mpi_msb.c Add functions that return the LSB and MSB of an MPI. 2017-04-06 19:51:47 +02:00
cryb_mpi_mul.c Implement MPI multiplication. 2017-04-06 19:52:23 +02:00
cryb_mpi_mul_abs.c Implement MPI multiplication. 2017-04-06 19:52:23 +02:00
cryb_mpi_negate.c Remove unused headers. 2017-04-06 19:51:47 +02:00
cryb_mpi_rshift.c Correct function descriptions. 2017-04-06 19:52:23 +02:00
cryb_mpi_set.c Remove unused headers. 2017-04-06 19:51:47 +02:00
cryb_mpi_sub.c Slightly improve function descriptions. 2017-04-06 19:51:47 +02:00
cryb_mpi_sub_abs.c Implement ffs() / fls() and use the latter to compute the MSB. 2017-04-06 19:52:23 +02:00
cryb_mpi_swap.c Remove unused headers. 2017-04-06 19:51:47 +02:00
cryb_mpi_zero.c Remove unused headers. 2017-04-06 19:51:47 +02:00
Makefile.am Implement fast increment / decrement functions. 2017-04-06 19:52:23 +02:00
README Start of a multiple-precision integer arithmetic library. 2014-08-12 07:30:31 +00:00

Portable multiple-precision integer library.

The interface is loosely based on XySSL's MPI library.  The
implementation was written from scratch based on the algorithms
described in Menezes, van Oorschot and Vanstone: _Handbook of Applied
Cryptography_, CRC Press, 1996.  The full text of the HAC is available
for personal use at http://www.cacr.math.uwaterloo.ca/hac/.

This implementation sacrifices performance for portability and
readability, but attempts have been made to structure it in such a way
that critical portions can easily be replaced with machine-dependent
optimized versions.

The code assumes a 64-bit machine or a 32-bit machine where 64-bit
integer arithmetic is supported but not necessarily efficient; 64-bit
operations are used only to simplify overflow handling.