minor changes & clean-up & small fixes
gitignore: add libtool output booker.pl: fix source code parsing and trim trailing spaces demo/demo: fix compiler warning, add informational output demo/timing & etc/tune: fix TIMFUNC() makefile: minor changes makefile.shared: increase version, add missing mp_balance_mul tommath: make sure that DIGIT_BIT is correct
This commit is contained in:
parent
78b8a772e4
commit
759a926cfe
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,11 +1,13 @@
|
|||||||
# suppress compiler/linker output
|
# suppress compiler/linker output
|
||||||
*.[oa]
|
*.[oa]
|
||||||
|
*.l[oa]
|
||||||
*.obj
|
*.obj
|
||||||
*.gcda
|
*.gcda
|
||||||
*.gcno
|
*.gcno
|
||||||
*.lib
|
*.lib
|
||||||
Debug/
|
Debug/
|
||||||
Release/
|
Release/
|
||||||
|
.libs/
|
||||||
|
|
||||||
# suppress output of build process and *nix/windows test executables
|
# suppress output of build process and *nix/windows test executables
|
||||||
ltmtest
|
ltmtest
|
||||||
|
@ -82,7 +82,7 @@ while (<IN>) {
|
|||||||
# scan till next end of comment, e.g. skip license
|
# scan till next end of comment, e.g. skip license
|
||||||
while (<SRC>) {
|
while (<SRC>) {
|
||||||
$text[$line++] = $_;
|
$text[$line++] = $_;
|
||||||
last if ($_ =~ /math\.libtomcrypt\.com/);
|
last if ($_ =~ /libtom\.org/);
|
||||||
}
|
}
|
||||||
<SRC>;
|
<SRC>;
|
||||||
}
|
}
|
||||||
@ -263,3 +263,5 @@ print "Read $readline lines, wrote $wroteline lines\n";
|
|||||||
|
|
||||||
close (OUT);
|
close (OUT);
|
||||||
close (IN);
|
close (IN);
|
||||||
|
|
||||||
|
system('perl -pli -e "s/\s*$//" tommath.tex');
|
||||||
|
19
demo/demo.c
19
demo/demo.c
@ -31,7 +31,6 @@
|
|||||||
|
|
||||||
#include "tommath.h"
|
#include "tommath.h"
|
||||||
|
|
||||||
#if LTM_DEMO_TEST_VS_MTEST
|
|
||||||
void ndraw(mp_int * a, char *name)
|
void ndraw(mp_int * a, char *name)
|
||||||
{
|
{
|
||||||
char buf[16000];
|
char buf[16000];
|
||||||
@ -41,6 +40,7 @@ void ndraw(mp_int * a, char *name)
|
|||||||
printf("%s\n", buf);
|
printf("%s\n", buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if LTM_DEMO_TEST_VS_MTEST
|
||||||
static void draw(mp_int * a)
|
static void draw(mp_int * a)
|
||||||
{
|
{
|
||||||
ndraw(a, "");
|
ndraw(a, "");
|
||||||
@ -97,6 +97,23 @@ int main(void)
|
|||||||
srand(LTM_DEMO_RAND_SEED);
|
srand(LTM_DEMO_RAND_SEED);
|
||||||
|
|
||||||
#if LTM_DEMO_TEST_VS_MTEST == 0
|
#if LTM_DEMO_TEST_VS_MTEST == 0
|
||||||
|
#ifdef MP_8BIT
|
||||||
|
printf("Digit size 8 Bit \n");
|
||||||
|
#endif
|
||||||
|
#ifdef MP_16BIT
|
||||||
|
printf("Digit size 16 Bit \n");
|
||||||
|
#endif
|
||||||
|
#ifdef MP_32BIT
|
||||||
|
printf("Digit size 32 Bit \n");
|
||||||
|
#endif
|
||||||
|
#ifdef MP_64BIT
|
||||||
|
printf("Digit size 64 Bit \n");
|
||||||
|
#endif
|
||||||
|
printf("Size of mp_digit: %u\n", sizeof(mp_digit));
|
||||||
|
printf("Size of mp_word: %u\n", sizeof(mp_word));
|
||||||
|
printf("DIGIT_BIT: %d\n", DIGIT_BIT);
|
||||||
|
printf("MP_PREC: %d\n", MP_PREC);
|
||||||
|
|
||||||
// test montgomery
|
// test montgomery
|
||||||
printf("Testing: montgomery...\n");
|
printf("Testing: montgomery...\n");
|
||||||
for (i = 1; i < 10; i++) {
|
for (i = 1; i < 10; i++) {
|
||||||
|
@ -44,10 +44,12 @@ static ulong64 TIMFUNC(void)
|
|||||||
{
|
{
|
||||||
#if defined __GNUC__
|
#if defined __GNUC__
|
||||||
#if defined(__i386__) || defined(__x86_64__)
|
#if defined(__i386__) || defined(__x86_64__)
|
||||||
unsigned long long a;
|
/* version from http://www.mcs.anl.gov/~kazutomo/rdtsc.html
|
||||||
__asm__ __volatile__("rdtsc\nmovl %%eax,%0\nmovl %%edx,4+%0\n"::
|
* the old code always got a warning issued by gcc, clang did not complain...
|
||||||
"m"(a):"%eax", "%edx");
|
*/
|
||||||
return a;
|
unsigned hi, lo;
|
||||||
|
__asm__ __volatile__ ("rdtsc" : "=a"(lo), "=d"(hi));
|
||||||
|
return ((ulong64)lo)|( ((ulong64)hi)<<32);
|
||||||
#else /* gcc-IA64 version */
|
#else /* gcc-IA64 version */
|
||||||
unsigned long result;
|
unsigned long result;
|
||||||
__asm__ __volatile__("mov %0=ar.itc":"=r"(result)::"memory");
|
__asm__ __volatile__("mov %0=ar.itc":"=r"(result)::"memory");
|
||||||
|
13
etc/tune.c
13
etc/tune.c
@ -10,14 +10,19 @@
|
|||||||
*/
|
*/
|
||||||
#define TIMES (1UL<<14UL)
|
#define TIMES (1UL<<14UL)
|
||||||
|
|
||||||
|
#ifndef X86_TIMER
|
||||||
|
|
||||||
/* RDTSC from Scott Duplichan */
|
/* RDTSC from Scott Duplichan */
|
||||||
static ulong64 TIMFUNC (void)
|
static ulong64 TIMFUNC (void)
|
||||||
{
|
{
|
||||||
#if defined __GNUC__
|
#if defined __GNUC__
|
||||||
#if defined(__i386__) || defined(__x86_64__)
|
#if defined(__i386__) || defined(__x86_64__)
|
||||||
unsigned long long a;
|
/* version from http://www.mcs.anl.gov/~kazutomo/rdtsc.html
|
||||||
__asm__ __volatile__ ("rdtsc\nmovl %%eax,%0\nmovl %%edx,4+%0\n"::"m"(a):"%eax","%edx");
|
* the old code always got a warning issued by gcc, clang did not complain...
|
||||||
return a;
|
*/
|
||||||
|
unsigned hi, lo;
|
||||||
|
__asm__ __volatile__ ("rdtsc" : "=a"(lo), "=d"(hi));
|
||||||
|
return ((ulong64)lo)|( ((ulong64)hi)<<32);
|
||||||
#else /* gcc-IA64 version */
|
#else /* gcc-IA64 version */
|
||||||
unsigned long result;
|
unsigned long result;
|
||||||
__asm__ __volatile__("mov %0=ar.itc" : "=r"(result) :: "memory");
|
__asm__ __volatile__("mov %0=ar.itc" : "=r"(result) :: "memory");
|
||||||
@ -42,8 +47,6 @@ static ulong64 TIMFUNC (void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifndef X86_TIMER
|
|
||||||
|
|
||||||
/* generic ISO C timer */
|
/* generic ISO C timer */
|
||||||
ulong64 LBL_T;
|
ulong64 LBL_T;
|
||||||
void t_start(void) { LBL_T = TIMFUNC(); }
|
void t_start(void) { LBL_T = TIMFUNC(); }
|
||||||
|
8
makefile
8
makefile
@ -12,7 +12,9 @@ ifndef PREFIX
|
|||||||
PREFIX=
|
PREFIX=
|
||||||
endif
|
endif
|
||||||
|
|
||||||
CC=$(PREFIX)gcc
|
ifeq ($(CC),cc)
|
||||||
|
CC = $(PREFIX)gcc
|
||||||
|
endif
|
||||||
LD=$(PREFIX)ld
|
LD=$(PREFIX)ld
|
||||||
AR=$(PREFIX)ar
|
AR=$(PREFIX)ar
|
||||||
RANLIB=$(PREFIX)ranlib
|
RANLIB=$(PREFIX)ranlib
|
||||||
@ -116,7 +118,7 @@ profiled:
|
|||||||
profiled_single:
|
profiled_single:
|
||||||
perl gen.pl
|
perl gen.pl
|
||||||
$(CC) $(CFLAGS) -fprofile-arcs -DTESTING -c mpi.c -o mpi.o
|
$(CC) $(CFLAGS) -fprofile-arcs -DTESTING -c mpi.c -o mpi.o
|
||||||
$(CC) $(CFLAGS) -DTESTING -DTIMER demo/timing.c mpi.o -o ltmtest
|
$(CC) $(CFLAGS) -DTESTING -DTIMER demo/timing.c mpi.o -lgcov -o ltmtest
|
||||||
./ltmtest
|
./ltmtest
|
||||||
rm -f *.o ltmtest
|
rm -f *.o ltmtest
|
||||||
$(CC) $(CFLAGS) -fbranch-probabilities -DTESTING -c mpi.c -o mpi.o
|
$(CC) $(CFLAGS) -fbranch-probabilities -DTESTING -c mpi.c -o mpi.o
|
||||||
@ -132,7 +134,7 @@ install: $(LIBNAME)
|
|||||||
test: $(LIBNAME) demo/demo.o
|
test: $(LIBNAME) demo/demo.o
|
||||||
$(CC) $(CFLAGS) demo/demo.o $(LIBNAME) -o test
|
$(CC) $(CFLAGS) demo/demo.o $(LIBNAME) -o test
|
||||||
|
|
||||||
mtest: test
|
mtest:
|
||||||
cd mtest ; $(CC) $(CFLAGS) mtest.c -o mtest
|
cd mtest ; $(CC) $(CFLAGS) mtest.c -o mtest
|
||||||
|
|
||||||
timing: $(LIBNAME)
|
timing: $(LIBNAME)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#Makefile for GCC
|
#Makefile for GCC
|
||||||
#
|
#
|
||||||
#Tom St Denis
|
#Tom St Denis
|
||||||
VERSION=0:41
|
VERSION=0:42
|
||||||
|
|
||||||
LT ?= libtool
|
LT ?= libtool
|
||||||
LTCOMPILE = $(LT) --mode=compile --tag=CC $(CC)
|
LTCOMPILE = $(LT) --mode=compile --tag=CC $(CC)
|
||||||
@ -79,7 +79,8 @@ bn_mp_fread.o bn_mp_fwrite.o bn_mp_cnt_lsb.o bn_error.o \
|
|||||||
bn_mp_init_multi.o bn_mp_clear_multi.o bn_mp_exteuclid.o bn_mp_toradix_n.o \
|
bn_mp_init_multi.o bn_mp_clear_multi.o bn_mp_exteuclid.o bn_mp_toradix_n.o \
|
||||||
bn_mp_prime_random_ex.o bn_mp_get_int.o bn_mp_sqrt.o bn_mp_is_square.o bn_mp_init_set.o \
|
bn_mp_prime_random_ex.o bn_mp_get_int.o bn_mp_sqrt.o bn_mp_is_square.o bn_mp_init_set.o \
|
||||||
bn_mp_init_set_int.o bn_mp_invmod_slow.o bn_mp_prime_rabin_miller_trials.o \
|
bn_mp_init_set_int.o bn_mp_invmod_slow.o bn_mp_prime_rabin_miller_trials.o \
|
||||||
bn_mp_to_signed_bin_n.o bn_mp_to_unsigned_bin_n.o bn_mp_import.o bn_mp_export.o
|
bn_mp_to_signed_bin_n.o bn_mp_to_unsigned_bin_n.o bn_mp_import.o bn_mp_export.o \
|
||||||
|
bn_mp_balance_mul.o
|
||||||
|
|
||||||
objs: $(OBJECTS)
|
objs: $(OBJECTS)
|
||||||
|
|
||||||
@ -99,7 +100,7 @@ test: $(LIBNAME) demo/demo.o
|
|||||||
$(CC) $(CFLAGS) -c demo/demo.c -o demo/demo.o
|
$(CC) $(CFLAGS) -c demo/demo.c -o demo/demo.o
|
||||||
$(LT) --mode=link $(CC) $(LDFLAGS) -o test demo/demo.o $(LIBNAME_S)
|
$(LT) --mode=link $(CC) $(LDFLAGS) -o test demo/demo.o $(LIBNAME_S)
|
||||||
|
|
||||||
mtest: test
|
mtest:
|
||||||
cd mtest ; $(CC) $(CFLAGS) $(LDFLAGS) mtest.c -o mtest
|
cd mtest ; $(CC) $(CFLAGS) $(LDFLAGS) mtest.c -o mtest
|
||||||
|
|
||||||
timing: $(LIBNAME)
|
timing: $(LIBNAME)
|
||||||
|
@ -47,7 +47,7 @@ extern "C" {
|
|||||||
|
|
||||||
/* detect 64-bit mode if possible */
|
/* detect 64-bit mode if possible */
|
||||||
#if defined(__x86_64__)
|
#if defined(__x86_64__)
|
||||||
#if !(defined(MP_64BIT) && defined(MP_16BIT) && defined(MP_8BIT))
|
#if !(defined(MP_32BIT) || defined(MP_16BIT) || defined(MP_8BIT))
|
||||||
#define MP_64BIT
|
#define MP_64BIT
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
@ -63,9 +63,15 @@ extern "C" {
|
|||||||
#ifdef MP_8BIT
|
#ifdef MP_8BIT
|
||||||
typedef unsigned char mp_digit;
|
typedef unsigned char mp_digit;
|
||||||
typedef unsigned short mp_word;
|
typedef unsigned short mp_word;
|
||||||
|
#ifdef DIGIT_BIT
|
||||||
|
#error You must not define DIGIT_BIT when using MP_8BIT
|
||||||
|
#endif
|
||||||
#elif defined(MP_16BIT)
|
#elif defined(MP_16BIT)
|
||||||
typedef unsigned short mp_digit;
|
typedef unsigned short mp_digit;
|
||||||
typedef unsigned int mp_word;
|
typedef unsigned int mp_word;
|
||||||
|
#ifdef DIGIT_BIT
|
||||||
|
#error You must not define DIGIT_BIT when using MP_16BIT
|
||||||
|
#endif
|
||||||
#elif defined(MP_64BIT)
|
#elif defined(MP_64BIT)
|
||||||
/* for GCC only on supported platforms */
|
/* for GCC only on supported platforms */
|
||||||
#ifndef CRYPT
|
#ifndef CRYPT
|
||||||
|
Loading…
x
Reference in New Issue
Block a user