Hardcode numwords in vli_cpm_unsafe
diff --git a/tinycrypt/ecc.c b/tinycrypt/ecc.c
index 60b565e..c223ff5 100644
--- a/tinycrypt/ecc.c
+++ b/tinycrypt/ecc.c
@@ -162,12 +162,11 @@
}
cmpresult_t uECC_vli_cmp_unsafe(const uECC_word_t *left,
- const uECC_word_t *right,
- wordcount_t num_words)
+ const uECC_word_t *right)
{
wordcount_t i;
- for (i = num_words - 1; i >= 0; --i) {
+ for (i = NUM_ECC_WORDS - 1; i >= 0; --i) {
if (left[i] > right[i]) {
return 1;
} else if (left[i] < right[i]) {
@@ -427,7 +426,7 @@
wordcount_t num_words)
{
uECC_word_t carry = uECC_vli_add(result, left, right);
- if (carry || uECC_vli_cmp_unsafe(mod, result, num_words) != 1) {
+ if (carry || uECC_vli_cmp_unsafe(mod, result) != 1) {
/* result > mod (result = mod + remainder), so subtract mod to get
* remainder. */
uECC_vli_sub(result, result, mod, num_words);
@@ -551,7 +550,7 @@
uECC_vli_clear(u);
u[0] = 1;
uECC_vli_clear(v);
- while ((cmpResult = uECC_vli_cmp_unsafe(a, b, num_words)) != 0) {
+ while ((cmpResult = uECC_vli_cmp_unsafe(a, b)) != 0) {
if (EVEN(a)) {
uECC_vli_rshift1(a, num_words);
vli_modInv_update(u, mod, num_words);
@@ -561,7 +560,7 @@
} else if (cmpResult > 0) {
uECC_vli_sub(a, a, b, num_words);
uECC_vli_rshift1(a, num_words);
- if (uECC_vli_cmp_unsafe(u, v, num_words) < 0) {
+ if (uECC_vli_cmp_unsafe(u, v) < 0) {
uECC_vli_add(u, u, mod);
}
uECC_vli_sub(u, u, v, num_words);
@@ -569,7 +568,7 @@
} else {
uECC_vli_sub(b, b, a, num_words);
uECC_vli_rshift1(b, num_words);
- if (uECC_vli_cmp_unsafe(v, u, num_words) < 0) {
+ if (uECC_vli_cmp_unsafe(v, u) < 0) {
uECC_vli_add(v, v, mod);
}
uECC_vli_sub(v, v, u, num_words);
@@ -742,7 +741,7 @@
while (carry < 0);
} else {
while (carry ||
- uECC_vli_cmp_unsafe(curve_secp256r1.p, result, NUM_ECC_WORDS) != 1) {
+ uECC_vli_cmp_unsafe(curve_secp256r1.p, result) != 1) {
carry -= uECC_vli_sub(result, result, curve_secp256r1.p, NUM_ECC_WORDS);
}
}
@@ -1058,8 +1057,8 @@
}
/* x and y must be smaller than p. */
- if (uECC_vli_cmp_unsafe(curve->p, point, num_words) != 1 ||
- uECC_vli_cmp_unsafe(curve->p, point + num_words, num_words) != 1) {
+ if (uECC_vli_cmp_unsafe(curve->p, point) != 1 ||
+ uECC_vli_cmp_unsafe(curve->p, point + num_words) != 1) {
return -2;
}
@@ -1084,7 +1083,7 @@
public_key + curve->num_bytes,
curve->num_bytes);
- if (uECC_vli_cmp_unsafe(_public, curve->G, NUM_ECC_WORDS * 2) == 0) {
+ if (memcmp(_public, curve->G, NUM_ECC_WORDS * 2) == 0) {
return -4;
}
diff --git a/tinycrypt/ecc_dsa.c b/tinycrypt/ecc_dsa.c
index e302e04..7d40534 100644
--- a/tinycrypt/ecc_dsa.c
+++ b/tinycrypt/ecc_dsa.c
@@ -102,7 +102,7 @@
}
/* Reduce mod curve_n */
- if (uECC_vli_cmp_unsafe(curve->n, native, num_n_words) != 1) {
+ if (uECC_vli_cmp_unsafe(curve->n, native) != 1) {
uECC_vli_sub(native, native, curve->n, num_n_words);
}
}
@@ -236,8 +236,8 @@
}
/* r, s must be < n. */
- if (uECC_vli_cmp_unsafe(curve->n, r, num_n_words) != 1 ||
- uECC_vli_cmp_unsafe(curve->n, s, num_n_words) != 1) {
+ if (uECC_vli_cmp_unsafe(curve->n, r) != 1 ||
+ uECC_vli_cmp_unsafe(curve->n, s) != 1) {
return 0;
}
@@ -293,7 +293,7 @@
apply_z(rx, ry, z);
/* v = x1 (mod n) */
- if (uECC_vli_cmp_unsafe(curve->n, rx, num_n_words) != 1) {
+ if (uECC_vli_cmp_unsafe(curve->n, rx) != 1) {
uECC_vli_sub(rx, rx, curve->n, num_n_words);
}