bn_check_top(p);
arr = OPENSSL_malloc(sizeof(*arr) * max);
- if (arr == NULL) {
- ERR_raise(ERR_LIB_BN, ERR_R_MALLOC_FAILURE);
+ if (arr == NULL)
return 0;
- }
ret = BN_GF2m_poly2arr(p, arr, max);
if (!ret || ret > max) {
ERR_raise(ERR_LIB_BN, BN_R_INVALID_LENGTH);
bn_check_top(p);
arr = OPENSSL_malloc(sizeof(*arr) * max);
- if (arr == NULL) {
- ERR_raise(ERR_LIB_BN, ERR_R_MALLOC_FAILURE);
+ if (arr == NULL)
return 0;
- }
ret = BN_GF2m_poly2arr(p, arr, max);
if (!ret || ret > max) {
ERR_raise(ERR_LIB_BN, BN_R_INVALID_LENGTH);
ret = 1;
err:
-# ifdef BN_DEBUG /* BN_CTX_end would complain about the
- * expanded form */
+# ifdef BN_DEBUG
+ /* BN_CTX_end would complain about the expanded form */
bn_correct_top(c);
bn_correct_top(u);
bn_correct_top(v);
{
BIGNUM *b = NULL;
int ret = 0;
+ int numbits;
BN_CTX_start(ctx);
if ((b = BN_CTX_get(ctx)) == NULL)
goto err;
+ /* Fail on a non-sensical input p value */
+ numbits = BN_num_bits(p);
+ if (numbits <= 1)
+ goto err;
+
/* generate blinding value */
do {
- if (!BN_priv_rand_ex(b, BN_num_bits(p) - 1,
- BN_RAND_TOP_ANY, BN_RAND_BOTTOM_ANY, ctx))
+ if (!BN_priv_rand_ex(b, numbits - 1,
+ BN_RAND_TOP_ANY, BN_RAND_BOTTOM_ANY, 0, ctx))
goto err;
} while (BN_is_zero(b));
bn_check_top(p);
arr = OPENSSL_malloc(sizeof(*arr) * max);
- if (arr == NULL) {
- ERR_raise(ERR_LIB_BN, ERR_R_MALLOC_FAILURE);
+ if (arr == NULL)
return 0;
- }
ret = BN_GF2m_poly2arr(p, arr, max);
if (!ret || ret > max) {
ERR_raise(ERR_LIB_BN, BN_R_INVALID_LENGTH);
bn_check_top(p);
arr = OPENSSL_malloc(sizeof(*arr) * max);
- if (arr == NULL) {
- ERR_raise(ERR_LIB_BN, ERR_R_MALLOC_FAILURE);
+ if (arr == NULL)
return 0;
- }
ret = BN_GF2m_poly2arr(p, arr, max);
if (!ret || ret > max) {
ERR_raise(ERR_LIB_BN, BN_R_INVALID_LENGTH);
goto err;
do {
if (!BN_priv_rand_ex(rho, p[0], BN_RAND_TOP_ONE, BN_RAND_BOTTOM_ANY,
- ctx))
+ 0, ctx))
goto err;
if (!BN_GF2m_mod_arr(rho, rho, p))
goto err;
bn_check_top(p);
arr = OPENSSL_malloc(sizeof(*arr) * max);
- if (arr == NULL) {
- ERR_raise(ERR_LIB_BN, ERR_R_MALLOC_FAILURE);
+ if (arr == NULL)
goto err;
- }
ret = BN_GF2m_poly2arr(p, arr, max);
if (!ret || ret > max) {
ERR_raise(ERR_LIB_BN, BN_R_INVALID_LENGTH);