Privatize BN_*_no_branch.
This commit is contained in:
parent
c693b5a55c
commit
55525742f4
@ -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,
|
int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d,
|
||||||
BN_CTX *ctx);
|
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))
|
#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_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);
|
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 */
|
int BN_kronecker(const BIGNUM *a,const BIGNUM *b,BN_CTX *ctx); /* returns -2 for error */
|
||||||
BIGNUM *BN_mod_inverse(BIGNUM *ret,
|
BIGNUM *BN_mod_inverse(BIGNUM *ret,
|
||||||
const BIGNUM *a, const BIGNUM *n,BN_CTX *ctx);
|
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,
|
BIGNUM *BN_mod_sqrt(BIGNUM *ret,
|
||||||
const BIGNUM *a, const BIGNUM *n,BN_CTX *ctx);
|
const BIGNUM *a, const BIGNUM *n,BN_CTX *ctx);
|
||||||
|
|
||||||
|
@ -169,13 +169,15 @@ int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d,
|
|||||||
#endif /* OPENSSL_NO_ASM */
|
#endif /* OPENSSL_NO_ASM */
|
||||||
|
|
||||||
|
|
||||||
/* BN_div computes dv := num / divisor, rounding towards zero, and sets up
|
/* BN_div[_no_branch] computes dv := num / divisor, rounding towards
|
||||||
* rm such that dv*divisor + rm = num holds.
|
* zero, and sets up rm such that dv*divisor + rm = num holds.
|
||||||
* Thus:
|
* Thus:
|
||||||
* dv->neg == num->neg ^ divisor->neg (unless the result is zero)
|
* dv->neg == num->neg ^ divisor->neg (unless the result is zero)
|
||||||
* rm->neg == num->neg (unless the remainder is zero)
|
* rm->neg == num->neg (unless the remainder is zero)
|
||||||
* If 'dv' or 'rm' is NULL, the respective value is not returned.
|
* 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,
|
int BN_div(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num, const BIGNUM *divisor,
|
||||||
BN_CTX *ctx)
|
BN_CTX *ctx)
|
||||||
{
|
{
|
||||||
@ -406,7 +408,7 @@ err:
|
|||||||
/* BN_div_no_branch is a special version of BN_div. It does not contain
|
/* BN_div_no_branch is a special version of BN_div. It does not contain
|
||||||
* branches that may leak sensitive information.
|
* 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)
|
const BIGNUM *divisor, BN_CTX *ctx)
|
||||||
{
|
{
|
||||||
int norm_shift,i,loop;
|
int norm_shift,i,loop;
|
||||||
|
@ -203,6 +203,8 @@ err:
|
|||||||
|
|
||||||
|
|
||||||
/* solves ax == 1 (mod n) */
|
/* 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,
|
BIGNUM *BN_mod_inverse(BIGNUM *in,
|
||||||
const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx)
|
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.
|
/* BN_mod_inverse_no_branch is a special version of BN_mod_inverse.
|
||||||
* It does not contain branches that may leak sensitive information.
|
* 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)
|
const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx)
|
||||||
{
|
{
|
||||||
BIGNUM *A,*B,*X,*Y,*M,*D,*T,*R=NULL;
|
BIGNUM *A,*B,*X,*Y,*M,*D,*T,*R=NULL;
|
||||||
|
@ -3909,8 +3909,6 @@ BIO_f_asn1 4289 EXIST::FUNCTION:
|
|||||||
BIO_asn1_set_suffix 4290 EXIST::FUNCTION:
|
BIO_asn1_set_suffix 4290 EXIST::FUNCTION:
|
||||||
BIO_asn1_get_suffix 4291 EXIST::FUNCTION:
|
BIO_asn1_get_suffix 4291 EXIST::FUNCTION:
|
||||||
PKCS7_stream 4292 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_decrypt 4295 EXIST::FUNCTION:SEED
|
||||||
SEED_encrypt 4296 EXIST::FUNCTION:SEED
|
SEED_encrypt 4296 EXIST::FUNCTION:SEED
|
||||||
SEED_cbc_encrypt 4297 EXIST::FUNCTION:SEED
|
SEED_cbc_encrypt 4297 EXIST::FUNCTION:SEED
|
||||||
|
Loading…
x
Reference in New Issue
Block a user