forked from wolfSSL/wolfssl
Fix bad logic flow in WC_NO_RNG
case.
This commit is contained in:
@@ -560,20 +560,21 @@ int mp_prime_is_prime_ex(mp_int* a, int t, int* result, WC_RNG* rng)
|
|||||||
/* The base size is the number of bits / 8. One is added if the number
|
/* The base size is the number of bits / 8. One is added if the number
|
||||||
* of bits isn't an even 8. */
|
* of bits isn't an even 8. */
|
||||||
sizeB = (sizeB / 8) + ((sizeB % 8) ? 1 : 0);
|
sizeB = (sizeB / 8) + ((sizeB % 8) ? 1 : 0);
|
||||||
|
|
||||||
ptrA = (uint8_t*)XMALLOC(LTC_MAX_INT_BYTES, NULL, DYNAMIC_TYPE_BIGINT);
|
ptrA = (uint8_t*)XMALLOC(LTC_MAX_INT_BYTES, NULL, DYNAMIC_TYPE_BIGINT);
|
||||||
ptrB = (uint8_t*)XMALLOC(sizeB, NULL, DYNAMIC_TYPE_BIGINT);
|
ptrB = (uint8_t*)XMALLOC(sizeB, NULL, DYNAMIC_TYPE_BIGINT);
|
||||||
if (ptrA == NULL || ptrB == NULL) {
|
if (ptrA == NULL || ptrB == NULL) {
|
||||||
res = MEMORY_E;
|
res = MEMORY_E;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef WC_NO_RNG
|
if (res == MP_OKAY) {
|
||||||
if (res == MP_OKAY && rng != NULL) {
|
#ifndef WC_NO_RNG
|
||||||
|
/* A NULL rng will return as bad function arg */
|
||||||
res = wc_RNG_GenerateBlock(rng, ptrB, sizeB);
|
res = wc_RNG_GenerateBlock(rng, ptrB, sizeB);
|
||||||
|
#else
|
||||||
|
res = NOT_COMPILED_IN;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
res = NOT_COMPILED_IN;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (res == MP_OKAY) {
|
if (res == MP_OKAY) {
|
||||||
res = ltc_get_lsb_bin_from_mp_int(ptrA, a, &sizeA);
|
res = ltc_get_lsb_bin_from_mp_int(ptrA, a, &sizeA);
|
||||||
|
Reference in New Issue
Block a user