Folus Wen 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
..
LICENSE 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
Makefile.in 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
README.md 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
astylerc 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_cutoffs.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_deprecated.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_2expt.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_abs.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_add.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_add_d.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_addmod.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_and.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_clamp.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_clear.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_clear_multi.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_cmp.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_cmp_d.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_cmp_mag.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_cnt_lsb.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_complement.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_copy.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_count_bits.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_decr.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_div.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_div_2.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_div_2d.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_div_3.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_div_d.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_dr_is_modulus.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_dr_reduce.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_dr_setup.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_error_to_string.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_exch.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_expt_u32.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_exptmod.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_exteuclid.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_fread.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_from_sbin.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_from_ubin.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_fwrite.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_gcd.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_get_i32.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_get_i64.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_get_l.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_get_ll.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_get_mag_u32.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_get_mag_u64.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_get_mag_ul.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_get_mag_ull.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_grow.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_incr.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_init.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_init_copy.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_init_i32.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_init_i64.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_init_l.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_init_ll.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_init_multi.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_init_set.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_init_size.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_init_u32.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_init_u64.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_init_ul.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_init_ull.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_invmod.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_is_square.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_iseven.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_isodd.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_kronecker.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_lcm.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_log_u32.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_lshd.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_mod.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_mod_2d.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_mod_d.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_montgomery_calc_normalization.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_montgomery_reduce.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_montgomery_setup.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_mul.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_mul_2.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_mul_2d.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_mul_d.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_mulmod.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_neg.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_or.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_pack.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_pack_count.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_prime_fermat.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_prime_frobenius_underwood.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_prime_is_prime.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_prime_miller_rabin.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_prime_next_prime.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_prime_rabin_miller_trials.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_prime_rand.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_prime_strong_lucas_selfridge.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_radix_size.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_radix_smap.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_rand.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_read_radix.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_reduce.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_reduce_2k.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_reduce_2k_l.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_reduce_2k_setup.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_reduce_2k_setup_l.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_reduce_is_2k.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_reduce_is_2k_l.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_reduce_setup.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_root_u32.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_rshd.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_sbin_size.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_set.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_set_i32.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_set_i64.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_set_l.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_set_ll.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_set_u32.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_set_u64.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_set_ul.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_set_ull.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_shrink.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_signed_rsh.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_sqr.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_sqrmod.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_sqrt.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_sqrtmod_prime.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_sub.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_sub_d.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_submod.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_to_radix.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_to_sbin.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_to_ubin.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_ubin_size.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_unpack.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_xor.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_mp_zero.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_prime_tab.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_s_mp_add.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_s_mp_balance_mul.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_s_mp_exptmod.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_s_mp_exptmod_fast.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_s_mp_get_bit.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_s_mp_invmod_fast.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_s_mp_invmod_slow.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_s_mp_karatsuba_mul.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_s_mp_karatsuba_sqr.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_s_mp_montgomery_reduce_fast.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_s_mp_mul_digs.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_s_mp_mul_digs_fast.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_s_mp_mul_high_digs.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_s_mp_mul_high_digs_fast.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_s_mp_prime_is_divisible.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_s_mp_rand_jenkins.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_s_mp_rand_platform.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_s_mp_reverse.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_s_mp_sqr.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_s_mp_sqr_fast.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_s_mp_sub.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_s_mp_toom_mul.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
bn_s_mp_toom_sqr.c 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
changes.txt 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
gen.pl 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
helper.pl 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
makefile_include.mk 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
testme.sh 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
tommath.h 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
tommath_class.h 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
tommath_cutoffs.h 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
tommath_private.h 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu
tommath_superclass.h 3c1544b7f9 [Improve][GPL][Dropbear] 2 lat temu

README.md

libtommath

This is the git repository for LibTomMath, a free open source portable number theoretic multiple-precision integer (MPI) library written entirely in C.

Build Status

Travis CI

master: Build Status

develop: Build Status

AppVeyor

master: Build status

develop: Build status

ABI Laboratory

API/ABI changes: check here

Summary

The develop branch contains the in-development version. Stable releases are tagged.

Documentation is built from the LaTeX file bn.tex. There is also limited documentation in tommath.h. There is also a document, tommath.pdf, which describes the goals of the project and many of the algorithms used.

The project can be build by using make. Along with the usual make, make clean and make install, there are several other build targets, see the makefile for details. There are also makefiles for certain specific platforms.

Testing

Tests are located in demo/ and can be built in two flavors.

  • make test creates a stand-alone test binary that executes several test routines.
  • make mtest_opponent creates a test binary that is intended to be run against mtest. mtest can be built with make mtest and test execution is done like ./mtest/mtest | ./mtest_opponent. mtest is creating test vectors using an alternative MPI library and test is consuming these vectors to verify correct behavior of ltm

Building and Installing

Building is straightforward for GNU Linux only, the section "Building LibTomMath" in the documentation in doc/bn.pdf has the details.