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

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.