mirror of
https://github.com/openssl/openssl.git
synced 2025-01-18 13:44:20 +08:00
Correct top for EC/DSA nonces if BN_DEBUG is on
Otherwise following operations would bail out in bn_check_top(). Reviewed-by: Paul Dale <ppzgs1@gmail.com> Reviewed-by: Neil Horman <nhorman@openssl.org> (Merged from https://github.com/openssl/openssl/pull/24265)
This commit is contained in:
parent
8a1f654680
commit
a380ae85be
@ -274,6 +274,10 @@ int ossl_bn_priv_rand_range_fixed_top(BIGNUM *r, const BIGNUM *range,
|
||||
ossl_bn_mask_bits_fixed_top(r, n);
|
||||
}
|
||||
while (BN_ucmp(r, range) >= 0);
|
||||
#ifdef BN_DEBUG
|
||||
/* With BN_DEBUG on a fixed top number cannot be returned */
|
||||
bn_correct_top(r);
|
||||
#endif
|
||||
}
|
||||
|
||||
return 1;
|
||||
@ -370,6 +374,10 @@ int ossl_bn_gen_dsa_nonce_fixed_top(BIGNUM *out, const BIGNUM *range,
|
||||
|
||||
if (BN_ucmp(out, range) < 0) {
|
||||
ret = 1;
|
||||
#ifdef BN_DEBUG
|
||||
/* With BN_DEBUG on a fixed top number cannot be returned */
|
||||
bn_correct_top(out);
|
||||
#endif
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
|
@ -227,6 +227,10 @@ int ossl_gen_deterministic_nonce_rfc6979(BIGNUM *out, const BIGNUM *q,
|
||||
} while (ossl_bn_is_word_fixed_top(out, 0)
|
||||
|| ossl_bn_is_word_fixed_top(out, 1)
|
||||
|| BN_ucmp(out, q) >= 0);
|
||||
#ifdef BN_DEBUG
|
||||
/* With BN_DEBUG on a fixed top number cannot be returned */
|
||||
bn_correct_top(out);
|
||||
#endif
|
||||
ret = 1;
|
||||
|
||||
end:
|
||||
|
Loading…
Reference in New Issue
Block a user