Fix bn bugs

This commit is contained in:
Zhi Guan
2026-05-27 21:34:52 +08:00
parent 83cac7235e
commit ad9eb3c547
2 changed files with 10 additions and 6 deletions

View File

@@ -76,7 +76,7 @@ void bn_mont_set(uint32_t *r, const uint32_t *a, const uint32_t *one_sqr, const
uint32_t *tmp, // uint32_t tmp[5 * k]
size_t k);
void bn_mont_get(uint32_t *r, const uint32_t *a, const uint32_t *p, const uint32_t *p_inv_neg,
uint32_t *tmp, // uint32_t tmp[5 * k]
uint32_t *tmp, // uint32_t tmp[6 * k]
size_t k);

View File

@@ -101,7 +101,7 @@ void bn_mul(uint32_t *r, const uint32_t *a, const uint32_t *b, size_t k)
r[i + j] = w & 0xffffffff;
w >>= 32;
}
r[i + k] = w;
r[i + k] = (uint32_t)w;
}
}
@@ -140,9 +140,10 @@ void bn_from_bytes(uint32_t *a, size_t k, const uint8_t *in)
int bn_print(FILE *fp, int fmt, int ind, const char *label, const uint32_t *a, size_t k)
{
size_t i;
fprintf(fp, "%s: ", label);
int i;
for (i = 0; i < k; i++) {
fprintf(fp, "0x%08x, ", a[i]);
}
@@ -370,11 +371,14 @@ void bn_mont_get(uint32_t *r,
const uint32_t *a,
const uint32_t *p,
const uint32_t *p_inv_neg,
uint32_t *tmp, // uint32_t tmp[5 * k]
uint32_t *tmp, // uint32_t tmp[6 * k]
size_t k)
{
uint32_t one[k];
uint32_t *one;
one = tmp;
tmp += k;
bn_set_word(one, 1, k);
bn_mont_mod_mul(r, a, one, p, p_inv_neg, tmp, k);
}