Hardcode numwords in semi-internal vli_numBits()
diff --git a/include/tinycrypt/ecc.h b/include/tinycrypt/ecc.h
index 59a7a89..50d93d2 100644
--- a/include/tinycrypt/ecc.h
+++ b/include/tinycrypt/ecc.h
@@ -476,8 +476,7 @@
* @param max_words IN -- number of words
* @return number of bits in given vli
*/
-bitcount_t uECC_vli_numBits(const uECC_word_t *vli,
- const wordcount_t max_words);
+bitcount_t uECC_vli_numBits(const uECC_word_t *vli);
/*
* @brief Erases (set to 0) vli
diff --git a/tinycrypt/ecc.c b/tinycrypt/ecc.c
index 0039d2f..cbc024a 100644
--- a/tinycrypt/ecc.c
+++ b/tinycrypt/ecc.c
@@ -121,27 +121,25 @@
}
/* Counts the number of words in vli. */
-static wordcount_t vli_numDigits(const uECC_word_t *vli,
- const wordcount_t max_words)
+static wordcount_t vli_numDigits(const uECC_word_t *vli)
{
wordcount_t i;
/* Search from the end until we find a non-zero digit. We do it in reverse
* because we expect that most digits will be nonzero. */
- for (i = max_words - 1; i >= 0 && vli[i] == 0; --i) {
+ for (i = NUM_ECC_WORDS - 1; i >= 0 && vli[i] == 0; --i) {
}
return (i + 1);
}
-bitcount_t uECC_vli_numBits(const uECC_word_t *vli,
- const wordcount_t max_words)
+bitcount_t uECC_vli_numBits(const uECC_word_t *vli)
{
uECC_word_t i;
uECC_word_t digit;
- wordcount_t num_digits = vli_numDigits(vli, max_words);
+ wordcount_t num_digits = vli_numDigits(vli);
if (num_digits == 0) {
return 0;
}
@@ -461,7 +459,7 @@
/* Shift mod so its highest set bit is at the maximum position. */
bitcount_t shift = (num_words * 2 * uECC_WORD_BITS) -
- uECC_vli_numBits(mod, num_words);
+ uECC_vli_numBits(mod);
wordcount_t word_shift = shift / uECC_WORD_BITS;
wordcount_t bit_shift = shift % uECC_WORD_BITS;
uECC_word_t carry = 0;
@@ -1029,7 +1027,7 @@
{
uECC_word_t mask = (uECC_word_t)-1;
uECC_word_t tries;
- bitcount_t num_bits = uECC_vli_numBits(top, num_words);
+ bitcount_t num_bits = uECC_vli_numBits(top);
if (!g_rng_function) {
return 0;
diff --git a/tinycrypt/ecc_dsa.c b/tinycrypt/ecc_dsa.c
index 67b4ac7..4fe4343 100644
--- a/tinycrypt/ecc_dsa.c
+++ b/tinycrypt/ecc_dsa.c
@@ -159,7 +159,7 @@
bits2int(tmp, message_hash, hash_size, curve);
uECC_vli_modAdd(s, tmp, s, curve->n, num_n_words); /* s = e + r*d */
uECC_vli_modMult(s, s, k, curve->n, num_n_words); /* s = (e + r*d) / k */
- if (uECC_vli_numBits(s, num_n_words) > (bitcount_t)curve->num_bytes * 8) {
+ if (uECC_vli_numBits(s) > (bitcount_t)curve->num_bytes * 8) {
return 0;
}
@@ -264,8 +264,8 @@
points[1] = curve->G;
points[2] = _public;
points[3] = sum;
- num_bits = smax(uECC_vli_numBits(u1, num_n_words),
- uECC_vli_numBits(u2, num_n_words));
+ num_bits = smax(uECC_vli_numBits(u1),
+ uECC_vli_numBits(u2));
point = points[(!!uECC_vli_testBit(u1, num_bits - 1)) |
((!!uECC_vli_testBit(u2, num_bits - 1)) << 1)];