From 03a0848922d3a4b1a6f216df1c2470a6b946cd87 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bodo=20M=C3=B6ller?= Date: Wed, 29 Nov 2000 13:40:08 +0000 Subject: [PATCH] Fix warnings in expspeed.c (but the segmentation fault remains) Improve readability of bn_shift.c. Add comment in bn_lib.c (why zero data between top and max?) Change bntest.c output for BN_kronecker test --- crypto/bn/bn_lib.c | 1 + crypto/bn/bn_shift.c | 2 +- crypto/bn/bntest.c | 5 ++++- crypto/bn/expspeed.c | 10 ++++++---- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/crypto/bn/bn_lib.c b/crypto/bn/bn_lib.c index d7a54d5fb5..a63c031216 100644 --- a/crypto/bn/bn_lib.c +++ b/crypto/bn/bn_lib.c @@ -357,6 +357,7 @@ static BN_ULONG *bn_expand_internal(const BIGNUM *b, int words) } /* Now need to zero any data between b->top and b->max */ + /* XXX Why? */ A= &(a[b->top]); for (i=(words - b->top)>>3; i>0; i--,A+=8) diff --git a/crypto/bn/bn_shift.c b/crypto/bn/bn_shift.c index e4da833ea6..37c6988da3 100644 --- a/crypto/bn/bn_shift.c +++ b/crypto/bn/bn_shift.c @@ -128,8 +128,8 @@ int BN_lshift(BIGNUM *r, const BIGNUM *a, int n) BN_ULONG l; r->neg=a->neg; - if (bn_wexpand(r,a->top+(n/BN_BITS2)+1) == NULL) return(0); nw=n/BN_BITS2; + if (bn_wexpand(r,a->top+nw+1) == NULL) return(0); lb=n%BN_BITS2; rb=BN_BITS2-lb; f=a->d; diff --git a/crypto/bn/bntest.c b/crypto/bn/bntest.c index 84412f31f3..86d384428c 100644 --- a/crypto/bn/bntest.c +++ b/crypto/bn/bntest.c @@ -981,9 +981,12 @@ int test_kron(BIO *bp, BN_CTX *ctx) goto err; } - fprintf(stderr, "ok\n"); + putc('.', stderr); + fflush(stderr); } + putc('\n', stderr); + fflush(stderr); ret = 1; err: if (a != NULL) BN_free(a); diff --git a/crypto/bn/expspeed.c b/crypto/bn/expspeed.c index 7706f49da0..dd849d5016 100644 --- a/crypto/bn/expspeed.c +++ b/crypto/bn/expspeed.c @@ -65,9 +65,9 @@ /* determine timings for modexp, gcd, or modular inverse */ -#define TEST_EXP +#undef TEST_EXP #undef TEST_GCD -#undef TEST_KRON +#define TEST_KRON #undef TEST_INV @@ -80,6 +80,7 @@ #include #include #include +#include #if !defined(MSDOS) && (!defined(VMS) || defined(__DECC)) #define TIMES @@ -179,7 +180,7 @@ static int sizes[NUM_SIZES]={128,256,512,1024,2048,4096,8192}; static int mul_c[NUM_SIZES]={8*8*8*8*8*8,8*8*8*8*8,8*8*8*8,8*8*8,8*8,8,1}; /*static int sizes[NUM_SIZES]={59,179,299,419,539}; */ -#define RAND_SEED(string) { const char str[] = string; RAND_seed(string, sizeof string); } +#define RAND_SEED(string) { const char str[] = string; RAND_seed(string, sizeof str); } static void genprime_cb(int p, int n, void *arg) { @@ -213,6 +214,7 @@ int main(int argc, char **argv) RAND_SEED("I demand a manual recount!"); do_mul_exp(r,a,b,c,ctx); + return 0; } void do_mul_exp(BIGNUM *r, BIGNUM *a, BIGNUM *b, BIGNUM *c, BN_CTX *ctx) @@ -275,7 +277,7 @@ void do_mul_exp(BIGNUM *r, BIGNUM *a, BIGNUM *b, BIGNUM *c, BN_CTX *ctx) #else /* TEST_INV */ "2*inv %4d %4d mod %4d" #endif - " -> %8.3fms %5.1f (%d)\n",sizes[i],sizes[i],sizes[i],tm*1000.0/num,tm*mul_c[i]/num, num); + " -> %8.3fms %5.1f (%ld)\n",sizes[i],sizes[i],sizes[i],tm*1000.0/num,tm*mul_c[i]/num, num); num/=7; if (num <= 0) num=1; } -- 2.25.1