From 283aedf4985790e56bf547fd2196fc47ea7b44fe Mon Sep 17 00:00:00 2001 From: Andy Polyakov Date: Mon, 11 Jun 2007 16:33:50 +0000 Subject: [PATCH] Privatize BN_*_no_branch [from HEAD]. --- crypto/bn/bn.h | 4 ---- crypto/bn/bn_div.c | 8 +++++--- crypto/bn/bn_gcd.c | 4 +++- util/libeay.num | 2 -- 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/crypto/bn/bn.h b/crypto/bn/bn.h index 2650365b81..df6eea29a7 100644 --- a/crypto/bn/bn.h +++ b/crypto/bn/bn.h @@ -435,8 +435,6 @@ void BN_set_negative(BIGNUM *b, int n); int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx); -int BN_div_no_branch(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, - const BIGNUM *d, BN_CTX *ctx); #define BN_mod(rem,m,d,ctx) BN_div(NULL,(rem),(m),(d),(ctx)) int BN_nnmod(BIGNUM *r, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx); int BN_mod_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, BN_CTX *ctx); @@ -505,8 +503,6 @@ int BN_gcd(BIGNUM *r,const BIGNUM *a,const BIGNUM *b,BN_CTX *ctx); int BN_kronecker(const BIGNUM *a,const BIGNUM *b,BN_CTX *ctx); /* returns -2 for error */ BIGNUM *BN_mod_inverse(BIGNUM *ret, const BIGNUM *a, const BIGNUM *n,BN_CTX *ctx); -BIGNUM *BN_mod_inverse_no_branch(BIGNUM *ret, - const BIGNUM *A, const BIGNUM *n,BN_CTX *ctx); BIGNUM *BN_mod_sqrt(BIGNUM *ret, const BIGNUM *a, const BIGNUM *n,BN_CTX *ctx); diff --git a/crypto/bn/bn_div.c b/crypto/bn/bn_div.c index 514b2c2c82..8655eb118e 100644 --- a/crypto/bn/bn_div.c +++ b/crypto/bn/bn_div.c @@ -169,13 +169,15 @@ int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d, #endif /* OPENSSL_NO_ASM */ -/* BN_div computes dv := num / divisor, rounding towards zero, and sets up - * rm such that dv*divisor + rm = num holds. +/* BN_div[_no_branch] computes dv := num / divisor, rounding towards + * zero, and sets up rm such that dv*divisor + rm = num holds. * Thus: * dv->neg == num->neg ^ divisor->neg (unless the result is zero) * rm->neg == num->neg (unless the remainder is zero) * If 'dv' or 'rm' is NULL, the respective value is not returned. */ +static int BN_div_no_branch(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num, + const BIGNUM *divisor, BN_CTX *ctx); int BN_div(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num, const BIGNUM *divisor, BN_CTX *ctx) { @@ -406,7 +408,7 @@ err: /* BN_div_no_branch is a special version of BN_div. It does not contain * branches that may leak sensitive information. */ -int BN_div_no_branch(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num, +static int BN_div_no_branch(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num, const BIGNUM *divisor, BN_CTX *ctx) { int norm_shift,i,loop; diff --git a/crypto/bn/bn_gcd.c b/crypto/bn/bn_gcd.c index 85e4b50c10..4a352119ba 100644 --- a/crypto/bn/bn_gcd.c +++ b/crypto/bn/bn_gcd.c @@ -203,6 +203,8 @@ err: /* solves ax == 1 (mod n) */ +static BIGNUM *BN_mod_inverse_no_branch(BIGNUM *in, + const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx); BIGNUM *BN_mod_inverse(BIGNUM *in, const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx) { @@ -501,7 +503,7 @@ err: /* BN_mod_inverse_no_branch is a special version of BN_mod_inverse. * It does not contain branches that may leak sensitive information. */ -BIGNUM *BN_mod_inverse_no_branch(BIGNUM *in, +static BIGNUM *BN_mod_inverse_no_branch(BIGNUM *in, const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx) { BIGNUM *A,*B,*X,*Y,*M,*D,*T,*R=NULL; diff --git a/util/libeay.num b/util/libeay.num index f0825ba5f4..f6519a516e 100755 --- a/util/libeay.num +++ b/util/libeay.num @@ -3510,8 +3510,6 @@ BIO_get_callback_arg 3902 EXIST::FUNCTION: BIO_set_callback 3903 EXIST::FUNCTION: d2i_ASIdOrRange 3904 EXIST::FUNCTION:RFC3779 i2d_ASIdentifiers 3905 EXIST::FUNCTION:RFC3779 -BN_div_no_branch 3906 EXIST::FUNCTION: -BN_mod_inverse_no_branch 3907 EXIST::FUNCTION: SEED_decrypt 3908 EXIST::FUNCTION:SEED SEED_encrypt 3909 EXIST::FUNCTION:SEED SEED_cbc_encrypt 3910 EXIST::FUNCTION:SEED -- 2.25.1