From: Felix Laurie von Massenbach Date: Mon, 26 May 2014 18:16:52 +0000 (+0100) Subject: Remove static from probable_prime_dh. X-Git-Tag: master-post-reformat~758^2~17 X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff_plain;h=e46a059ebf1844f3871a6a5e2665bc025588d89a Remove static from probable_prime_dh. --- diff --git a/crypto/bn/bn_lcl.h b/crypto/bn/bn_lcl.h index 90787e576e..40ef22b73f 100644 --- a/crypto/bn/bn_lcl.h +++ b/crypto/bn/bn_lcl.h @@ -534,6 +534,9 @@ int bn_mul_mont(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_U BIGNUM *int_bn_mod_inverse(BIGNUM *in, const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx, int *noinv); +int bn_probable_prime_dh(BIGNUM *rnd, int bits, + const BIGNUM *add, const BIGNUM *rem, BN_CTX *ctx); + #ifdef __cplusplus } #endif diff --git a/crypto/bn/bn_prime.c b/crypto/bn/bn_prime.c index 06b1a286a5..ac6ae30fa2 100644 --- a/crypto/bn/bn_prime.c +++ b/crypto/bn/bn_prime.c @@ -129,8 +129,6 @@ static int witness(BIGNUM *w, const BIGNUM *a, const BIGNUM *a1, const BIGNUM *a1_odd, int k, BN_CTX *ctx, BN_MONT_CTX *mont); static int probable_prime(BIGNUM *rnd, int bits); -static int probable_prime_dh(BIGNUM *rnd, int bits, - const BIGNUM *add, const BIGNUM *rem, BN_CTX *ctx); static int probable_prime_dh_safe(BIGNUM *rnd, int bits, const BIGNUM *add, const BIGNUM *rem, BN_CTX *ctx); @@ -198,7 +196,7 @@ loop: } else { - if (!probable_prime_dh(ret,bits,add,rem,ctx)) + if (!bn_probable_prime_dh(ret,bits,add,rem,ctx)) goto err; } } @@ -362,6 +360,45 @@ err: return(ret); } +int bn_probable_prime_dh(BIGNUM *rnd, int bits, + const BIGNUM *add, const BIGNUM *rem, BN_CTX *ctx) + { + int i,ret=0; + BIGNUM *t1; + + BN_CTX_start(ctx); + if ((t1 = BN_CTX_get(ctx)) == NULL) goto err; + + if (!BN_rand(rnd,bits,0,1)) goto err; + + /* we need ((rnd-rem) % add) == 0 */ + + if (!BN_mod(t1,rnd,add,ctx)) goto err; + if (!BN_sub(rnd,rnd,t1)) goto err; + if (rem == NULL) + { if (!BN_add_word(rnd,1)) goto err; } + else + { if (!BN_add(rnd,rnd,rem)) goto err; } + + /* we now have a random number 'rand' to test. */ + +loop: + for (i=1; i