Remove num_bytes member from curve structure
Reduces code size and size of the structure.
diff --git a/tinycrypt/ecc.c b/tinycrypt/ecc.c
index 9a28b18..cfdbc4b 100644
--- a/tinycrypt/ecc.c
+++ b/tinycrypt/ecc.c
@@ -93,7 +93,8 @@
int uECC_curve_public_key_size(uECC_Curve curve)
{
- return 2 * curve->num_bytes;
+ (void) curve;
+ return 2 * NUM_ECC_BYTES;
}
void uECC_vli_clear(uECC_word_t *vli)
@@ -1070,11 +1071,11 @@
uECC_word_t _public[NUM_ECC_WORDS * 2];
- uECC_vli_bytesToNative(_public, public_key, curve->num_bytes);
+ uECC_vli_bytesToNative(_public, public_key, NUM_ECC_BYTES);
uECC_vli_bytesToNative(
_public + NUM_ECC_WORDS,
- public_key + curve->num_bytes,
- curve->num_bytes);
+ public_key + NUM_ECC_BYTES,
+ NUM_ECC_BYTES);
if (memcmp(_public, curve->G, NUM_ECC_WORDS * 2) == 0) {
return -4;
@@ -1109,10 +1110,10 @@
return 0;
}
- uECC_vli_nativeToBytes(public_key, curve->num_bytes, _public);
+ uECC_vli_nativeToBytes(public_key, NUM_ECC_BYTES, _public);
uECC_vli_nativeToBytes(
public_key +
- curve->num_bytes, curve->num_bytes, _public + NUM_ECC_WORDS);
+ NUM_ECC_BYTES, NUM_ECC_BYTES, _public + NUM_ECC_WORDS);
return 1;
}
#else
diff --git a/tinycrypt/ecc_dh.c b/tinycrypt/ecc_dh.c
index b3f8f71..a1d7483 100644
--- a/tinycrypt/ecc_dh.c
+++ b/tinycrypt/ecc_dh.c
@@ -92,10 +92,10 @@
BITS_TO_BYTES(curve->num_n_bits),
_private);
uECC_vli_nativeToBytes(public_key,
- curve->num_bytes,
+ NUM_ECC_BYTES,
_public);
- uECC_vli_nativeToBytes(public_key + curve->num_bytes,
- curve->num_bytes,
+ uECC_vli_nativeToBytes(public_key + NUM_ECC_BYTES,
+ NUM_ECC_BYTES,
_public + NUM_ECC_WORDS);
/* erasing temporary buffer used to store secret: */
@@ -133,10 +133,10 @@
BITS_TO_BYTES(curve->num_n_bits),
_private);
uECC_vli_nativeToBytes(public_key,
- curve->num_bytes,
+ NUM_ECC_BYTES,
_public);
- uECC_vli_nativeToBytes(public_key + curve->num_bytes,
- curve->num_bytes,
+ uECC_vli_nativeToBytes(public_key + NUM_ECC_BYTES,
+ NUM_ECC_BYTES,
_public + NUM_ECC_WORDS);
/* erasing temporary buffer that stored secret: */
@@ -155,7 +155,7 @@
uECC_word_t _public[NUM_ECC_WORDS * 2];
uECC_word_t _private[NUM_ECC_WORDS];
wordcount_t num_words = NUM_ECC_WORDS;
- wordcount_t num_bytes = curve->num_bytes;
+ wordcount_t num_bytes = NUM_ECC_BYTES;
int r;
/* Converting buffers to correct bit order: */
diff --git a/tinycrypt/ecc_dsa.c b/tinycrypt/ecc_dsa.c
index f4af4b6..5c4ca15 100644
--- a/tinycrypt/ecc_dsa.c
+++ b/tinycrypt/ecc_dsa.c
@@ -147,7 +147,7 @@
uECC_vli_modInv(k, k, curve->n); /* k = 1 / k' */
uECC_vli_modMult(k, k, tmp, curve->n); /* k = 1 / k */
- uECC_vli_nativeToBytes(signature, curve->num_bytes, p); /* store r */
+ uECC_vli_nativeToBytes(signature, NUM_ECC_BYTES, p); /* store r */
/* tmp = d: */
uECC_vli_bytesToNative(tmp, private_key, BITS_TO_BYTES(curve->num_n_bits));
@@ -159,11 +159,11 @@
bits2int(tmp, message_hash, hash_size, curve);
uECC_vli_modAdd(s, tmp, s, curve->n); /* s = e + r*d */
uECC_vli_modMult(s, s, k, curve->n); /* s = (e + r*d) / k */
- if (uECC_vli_numBits(s) > (bitcount_t)curve->num_bytes * 8) {
+ if (uECC_vli_numBits(s) > (bitcount_t)NUM_ECC_BYTES * 8) {
return 0;
}
- uECC_vli_nativeToBytes(signature + curve->num_bytes, curve->num_bytes, s);
+ uECC_vli_nativeToBytes(signature + NUM_ECC_BYTES, NUM_ECC_BYTES, s);
return 1;
}
@@ -229,11 +229,11 @@
r[num_n_words - 1] = 0;
s[num_n_words - 1] = 0;
- uECC_vli_bytesToNative(_public, public_key, curve->num_bytes);
- uECC_vli_bytesToNative(_public + num_words, public_key + curve->num_bytes,
- curve->num_bytes);
- uECC_vli_bytesToNative(r, signature, curve->num_bytes);
- uECC_vli_bytesToNative(s, signature + curve->num_bytes, curve->num_bytes);
+ uECC_vli_bytesToNative(_public, public_key, NUM_ECC_BYTES);
+ uECC_vli_bytesToNative(_public + num_words, public_key + NUM_ECC_BYTES,
+ NUM_ECC_BYTES);
+ uECC_vli_bytesToNative(r, signature, NUM_ECC_BYTES);
+ uECC_vli_bytesToNative(s, signature + NUM_ECC_BYTES, NUM_ECC_BYTES);
/* r, s must not be 0. */
if (uECC_vli_isZero(r) || uECC_vli_isZero(s)) {