Check error returns from mp calls

This commit is contained in:
Sean Parkinson
2019-11-20 11:07:04 +10:00
parent cc880e39ae
commit 13c6346158

View File

@@ -4970,7 +4970,10 @@ int wc_ecc_sign_hash_ex(const byte* in, word32 inlen, WC_RNG* rng,
err = RNG_FAILURE_E;
break;
}
mp_copy(key->sign_k, &pubkey->k);
err = mp_copy(key->sign_k, &pubkey->k);
if (err != MP_OKAY) break;
mp_forcezero(key->sign_k);
mp_free(key->sign_k);
XFREE(key->sign_k, key->heap, DYNAMIC_TYPE_ECC);
@@ -5438,9 +5441,15 @@ int ecc_mul2add(ecc_point* A, mp_int* kA,
}
/* When only Z zero then result is infinity */
else {
mp_set(C->x, 0);
mp_set(C->y, 0);
mp_set(C->z, 1);
err = mp_set(C->x, 0);
if (err != MP_OKAY)
break;
err = mp_set(C->y, 0);
if (err != MP_OKAY)
break;
err = mp_set(C->z, 1);
if (err != MP_OKAY)
break;
first = 1;
}
}
@@ -5985,9 +5994,11 @@ int wc_ecc_verify_hash_ex(mp_int *r, mp_int *s, const byte* hash,
}
/* When only Z zero then result is infinity */
else {
mp_set(mG->x, 0);
mp_set(mG->y, 0);
mp_set(mG->z, 1);
err = mp_set(mG->x, 0);
if (err == MP_OKAY)
err = mp_set(mG->y, 0);
if (err == MP_OKAY)
err = mp_set(mG->z, 1);
}
}
}
@@ -8555,9 +8566,18 @@ static int accel_fp_mul(int idx, mp_int* k, ecc_point *R, mp_int* a,
}
/* When only Z zero then result is infinity */
else {
mp_set(R->x, 0);
mp_set(R->y, 0);
mp_copy(&fp_cache[idx].mu, R->z);
err = mp_set(R->x, 0);
if (err != MP_OKAY) {
break;
}
err = mp_set(R->y, 0);
if (err != MP_OKAY) {
break;
}
err = mp_copy(&fp_cache[idx].mu, R->z);
if (err != MP_OKAY) {
break;
}
first = 1;
}
}
@@ -8785,9 +8805,18 @@ static int accel_fp_mul2add(int idx1, int idx2,
}
/* When only Z zero then result is infinity */
else {
mp_set(R->x, 0);
mp_set(R->y, 0);
mp_copy(&fp_cache[idx1].mu, R->z);
err = mp_set(R->x, 0);
if (err != MP_OKAY) {
break;
}
err = mp_set(R->y, 0);
if (err != MP_OKAY) {
break;
}
err = mp_copy(&fp_cache[idx1].mu, R->z);
if (err != MP_OKAY) {
break;
}
first = 1;
}
}
@@ -8809,9 +8838,18 @@ static int accel_fp_mul2add(int idx1, int idx2,
}
/* When only Z zero then result is infinity */
else {
mp_set(R->x, 0);
mp_set(R->y, 0);
mp_copy(&fp_cache[idx2].mu, R->z);
err = mp_set(R->x, 0);
if (err != MP_OKAY) {
break;
}
err = mp_set(R->y, 0);
if (err != MP_OKAY) {
break;
}
err = mp_copy(&fp_cache[idx2].mu, R->z);
if (err != MP_OKAY) {
break;
}
first = 1;
}
}
@@ -8843,9 +8881,18 @@ static int accel_fp_mul2add(int idx1, int idx2,
}
/* When only Z zero then result is infinity */
else {
mp_set(R->x, 0);
mp_set(R->y, 0);
mp_copy(&fp_cache[idx2].mu, R->z);
err = mp_set(R->x, 0);
if (err != MP_OKAY) {
break;
}
err = mp_set(R->y, 0);
if (err != MP_OKAY) {
break;
}
err = mp_copy(&fp_cache[idx2].mu, R->z);
if (err != MP_OKAY) {
break;
}
first = 1;
}
}