From: Andy Polyakov <appro@openssl.org>
Date: Mon, 11 Jun 2007 16:33:03 +0000 (+0000)
Subject: Privatize BN_*_no_branch.
X-Git-Tag: OpenSSL_0_9_8k^2~798
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=55525742f4c2bf416013fc3a75ec642775d97f80;p=openssl

Privatize BN_*_no_branch.
---

diff --git a/crypto/bn/bn.h b/crypto/bn/bn.h
index 68ed77eaab..83f87ffea6 100644
--- a/crypto/bn/bn.h
+++ b/crypto/bn/bn.h
@@ -446,8 +446,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);
@@ -517,8 +515,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 9b9cf7c954..805b2af5f6 100755
--- a/util/libeay.num
+++ b/util/libeay.num
@@ -3909,8 +3909,6 @@ BIO_f_asn1                              4289	EXIST::FUNCTION:
 BIO_asn1_set_suffix                     4290	EXIST::FUNCTION:
 BIO_asn1_get_suffix                     4291	EXIST::FUNCTION:
 PKCS7_stream                            4292	EXIST::FUNCTION:
-BN_div_no_branch                        4293	EXIST::FUNCTION:
-BN_mod_inverse_no_branch                4294	EXIST::FUNCTION:
 SEED_decrypt                            4295	EXIST::FUNCTION:SEED
 SEED_encrypt                            4296	EXIST::FUNCTION:SEED
 SEED_cbc_encrypt                        4297	EXIST::FUNCTION:SEED