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
This commit is contained in:
parent
9161672950
commit
03a0848922
@ -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)
|
|||||||
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)
|
|||||||
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 @@
|
|||||||
|
|
||||||
|
|
||||||
/* 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 @@
|
|||||||
#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};
|
|||||||
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)
|
|||||||
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)
|
|||||||
#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;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user