Fix warnings in expspeed.c (but the segmentation fault remains)
authorBodo Möller <bodo@openssl.org>
Wed, 29 Nov 2000 13:40:08 +0000 (13:40 +0000)
committerBodo Möller <bodo@openssl.org>
Wed, 29 Nov 2000 13:40:08 +0000 (13:40 +0000)
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
crypto/bn/bn_shift.c
crypto/bn/bntest.c
crypto/bn/expspeed.c

index d7a54d5..a63c031 100644 (file)
@@ -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)
index e4da833..37c6988 100644 (file)
@@ -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;
index 84412f3..86d3844 100644 (file)
@@ -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);
index 7706f49..dd849d5 100644 (file)
@@ -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 <string.h>
 #include <openssl/crypto.h>
 #include <openssl/err.h>
+#include <openssl/rand.h>
 
 #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;
                }