bn_exp.c (325337) | bn_exp.c (326663) |
---|---|
1/* crypto/bn/bn_exp.c */ 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 3 * All rights reserved. 4 * 5 * This package is an SSL implementation written 6 * by Eric Young (eay@cryptsoft.com). 7 * The implementation was written so as to conform with Netscapes SSL. 8 * --- 135 unchanged lines hidden (view full) --- 144{ 145 int i, bits, ret = 0; 146 BIGNUM *v, *rr; 147 148 if (BN_get_flags(p, BN_FLG_CONSTTIME) != 0 149 || BN_get_flags(a, BN_FLG_CONSTTIME) != 0) { 150 /* BN_FLG_CONSTTIME only supported by BN_mod_exp_mont() */ 151 BNerr(BN_F_BN_EXP, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); | 1/* crypto/bn/bn_exp.c */ 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 3 * All rights reserved. 4 * 5 * This package is an SSL implementation written 6 * by Eric Young (eay@cryptsoft.com). 7 * The implementation was written so as to conform with Netscapes SSL. 8 * --- 135 unchanged lines hidden (view full) --- 144{ 145 int i, bits, ret = 0; 146 BIGNUM *v, *rr; 147 148 if (BN_get_flags(p, BN_FLG_CONSTTIME) != 0 149 || BN_get_flags(a, BN_FLG_CONSTTIME) != 0) { 150 /* BN_FLG_CONSTTIME only supported by BN_mod_exp_mont() */ 151 BNerr(BN_F_BN_EXP, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); |
152 return -1; | 152 return 0; |
153 } 154 155 BN_CTX_start(ctx); 156 if ((r == a) || (r == p)) 157 rr = BN_CTX_get(ctx); 158 else 159 rr = r; 160 v = BN_CTX_get(ctx); --- 119 unchanged lines hidden (view full) --- 280 BIGNUM *val[TABLE_SIZE]; 281 BN_RECP_CTX recp; 282 283 if (BN_get_flags(p, BN_FLG_CONSTTIME) != 0 284 || BN_get_flags(a, BN_FLG_CONSTTIME) != 0 285 || BN_get_flags(m, BN_FLG_CONSTTIME) != 0) { 286 /* BN_FLG_CONSTTIME only supported by BN_mod_exp_mont() */ 287 BNerr(BN_F_BN_MOD_EXP_RECP, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); | 153 } 154 155 BN_CTX_start(ctx); 156 if ((r == a) || (r == p)) 157 rr = BN_CTX_get(ctx); 158 else 159 rr = r; 160 v = BN_CTX_get(ctx); --- 119 unchanged lines hidden (view full) --- 280 BIGNUM *val[TABLE_SIZE]; 281 BN_RECP_CTX recp; 282 283 if (BN_get_flags(p, BN_FLG_CONSTTIME) != 0 284 || BN_get_flags(a, BN_FLG_CONSTTIME) != 0 285 || BN_get_flags(m, BN_FLG_CONSTTIME) != 0) { 286 /* BN_FLG_CONSTTIME only supported by BN_mod_exp_mont() */ 287 BNerr(BN_F_BN_MOD_EXP_RECP, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); |
288 return -1; | 288 return 0; |
289 } 290 291 bits = BN_num_bits(p); 292 if (bits == 0) { 293 /* x**0 mod 1 is still zero. */ 294 if (BN_is_one(m)) { 295 ret = 1; 296 BN_zero(r); --- 926 unchanged lines hidden (view full) --- 1223 */ 1224#define BN_TO_MONTGOMERY_WORD(r, w, mont) \ 1225 (BN_set_word(r, (w)) && BN_to_montgomery(r, r, (mont), ctx)) 1226 1227 if (BN_get_flags(p, BN_FLG_CONSTTIME) != 0 1228 || BN_get_flags(m, BN_FLG_CONSTTIME) != 0) { 1229 /* BN_FLG_CONSTTIME only supported by BN_mod_exp_mont() */ 1230 BNerr(BN_F_BN_MOD_EXP_MONT_WORD, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); | 289 } 290 291 bits = BN_num_bits(p); 292 if (bits == 0) { 293 /* x**0 mod 1 is still zero. */ 294 if (BN_is_one(m)) { 295 ret = 1; 296 BN_zero(r); --- 926 unchanged lines hidden (view full) --- 1223 */ 1224#define BN_TO_MONTGOMERY_WORD(r, w, mont) \ 1225 (BN_set_word(r, (w)) && BN_to_montgomery(r, r, (mont), ctx)) 1226 1227 if (BN_get_flags(p, BN_FLG_CONSTTIME) != 0 1228 || BN_get_flags(m, BN_FLG_CONSTTIME) != 0) { 1229 /* BN_FLG_CONSTTIME only supported by BN_mod_exp_mont() */ 1230 BNerr(BN_F_BN_MOD_EXP_MONT_WORD, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); |
1231 return -1; | 1231 return 0; |
1232 } 1233 1234 bn_check_top(p); 1235 bn_check_top(m); 1236 1237 if (!BN_is_odd(m)) { 1238 BNerr(BN_F_BN_MOD_EXP_MONT_WORD, BN_R_CALLED_WITH_EVEN_MODULUS); 1239 return (0); --- 116 unchanged lines hidden (view full) --- 1356 /* Table of variables obtained from 'ctx' */ 1357 BIGNUM *val[TABLE_SIZE]; 1358 1359 if (BN_get_flags(p, BN_FLG_CONSTTIME) != 0 1360 || BN_get_flags(a, BN_FLG_CONSTTIME) != 0 1361 || BN_get_flags(m, BN_FLG_CONSTTIME) != 0) { 1362 /* BN_FLG_CONSTTIME only supported by BN_mod_exp_mont() */ 1363 BNerr(BN_F_BN_MOD_EXP_SIMPLE, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); | 1232 } 1233 1234 bn_check_top(p); 1235 bn_check_top(m); 1236 1237 if (!BN_is_odd(m)) { 1238 BNerr(BN_F_BN_MOD_EXP_MONT_WORD, BN_R_CALLED_WITH_EVEN_MODULUS); 1239 return (0); --- 116 unchanged lines hidden (view full) --- 1356 /* Table of variables obtained from 'ctx' */ 1357 BIGNUM *val[TABLE_SIZE]; 1358 1359 if (BN_get_flags(p, BN_FLG_CONSTTIME) != 0 1360 || BN_get_flags(a, BN_FLG_CONSTTIME) != 0 1361 || BN_get_flags(m, BN_FLG_CONSTTIME) != 0) { 1362 /* BN_FLG_CONSTTIME only supported by BN_mod_exp_mont() */ 1363 BNerr(BN_F_BN_MOD_EXP_SIMPLE, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); |
1364 return -1; | 1364 return 0; |
1365 } 1366 1367 bits = BN_num_bits(p); 1368 if (bits == 0) { 1369 /* x**0 mod 1 is still zero. */ 1370 if (BN_is_one(m)) { 1371 ret = 1; 1372 BN_zero(r); --- 96 unchanged lines hidden --- | 1365 } 1366 1367 bits = BN_num_bits(p); 1368 if (bits == 0) { 1369 /* x**0 mod 1 is still zero. */ 1370 if (BN_is_one(m)) { 1371 ret = 1; 1372 BN_zero(r); --- 96 unchanged lines hidden --- |