提交 03a08489 编写于 作者: B Bodo Möller

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
上级 91616729
...@@ -357,6 +357,7 @@ static BN_ULONG *bn_expand_internal(const BIGNUM *b, int words) ...@@ -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 */ /* Now need to zero any data between b->top and b->max */
/* XXX Why? */
A= &(a[b->top]); A= &(a[b->top]);
for (i=(words - b->top)>>3; i>0; i--,A+=8) for (i=(words - b->top)>>3; i>0; i--,A+=8)
......
...@@ -128,8 +128,8 @@ int BN_lshift(BIGNUM *r, const BIGNUM *a, int n) ...@@ -128,8 +128,8 @@ int BN_lshift(BIGNUM *r, const BIGNUM *a, int n)
BN_ULONG l; BN_ULONG l;
r->neg=a->neg; r->neg=a->neg;
if (bn_wexpand(r,a->top+(n/BN_BITS2)+1) == NULL) return(0);
nw=n/BN_BITS2; nw=n/BN_BITS2;
if (bn_wexpand(r,a->top+nw+1) == NULL) return(0);
lb=n%BN_BITS2; lb=n%BN_BITS2;
rb=BN_BITS2-lb; rb=BN_BITS2-lb;
f=a->d; f=a->d;
......
...@@ -981,9 +981,12 @@ int test_kron(BIO *bp, BN_CTX *ctx) ...@@ -981,9 +981,12 @@ int test_kron(BIO *bp, BN_CTX *ctx)
goto err; goto err;
} }
fprintf(stderr, "ok\n"); putc('.', stderr);
fflush(stderr);
} }
putc('\n', stderr);
fflush(stderr);
ret = 1; ret = 1;
err: err:
if (a != NULL) BN_free(a); if (a != NULL) BN_free(a);
......
...@@ -65,9 +65,9 @@ ...@@ -65,9 +65,9 @@
/* determine timings for modexp, gcd, or modular inverse */ /* determine timings for modexp, gcd, or modular inverse */
#define TEST_EXP #undef TEST_EXP
#undef TEST_GCD #undef TEST_GCD
#undef TEST_KRON #define TEST_KRON
#undef TEST_INV #undef TEST_INV
...@@ -80,6 +80,7 @@ ...@@ -80,6 +80,7 @@
#include <string.h> #include <string.h>
#include <openssl/crypto.h> #include <openssl/crypto.h>
#include <openssl/err.h> #include <openssl/err.h>
#include <openssl/rand.h>
#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC)) #if !defined(MSDOS) && (!defined(VMS) || defined(__DECC))
#define TIMES #define TIMES
...@@ -179,7 +180,7 @@ static int sizes[NUM_SIZES]={128,256,512,1024,2048,4096,8192}; ...@@ -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 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}; */ /*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) static void genprime_cb(int p, int n, void *arg)
{ {
...@@ -213,6 +214,7 @@ int main(int argc, char **argv) ...@@ -213,6 +214,7 @@ int main(int argc, char **argv)
RAND_SEED("I demand a manual recount!"); RAND_SEED("I demand a manual recount!");
do_mul_exp(r,a,b,c,ctx); 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) 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) ...@@ -275,7 +277,7 @@ void do_mul_exp(BIGNUM *r, BIGNUM *a, BIGNUM *b, BIGNUM *c, BN_CTX *ctx)
#else /* TEST_INV */ #else /* TEST_INV */
"2*inv %4d %4d mod %4d" "2*inv %4d %4d mod %4d"
#endif #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; num/=7;
if (num <= 0) num=1; if (num <= 0) num=1;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册