Removed unused "curve" parameter from uECC_vli_nativeToBytes and uECC_vli_bytesToNative functions.
diff --git a/uECC.c b/uECC.c index c7d759a..4d4ee8f 100644 --- a/uECC.c +++ b/uECC.c
@@ -814,8 +814,7 @@ uECC_VLI_API void uECC_vli_nativeToBytes(uint8_t *bytes, int num_bytes, - const uint8_t *native, - uECC_Curve curve) { + const uint8_t *native) { wordcount_t i; for (i = 0; i < num_bytes; ++i) { bytes[i] = native[(num_bytes - 1) - i]; @@ -824,17 +823,15 @@ uECC_VLI_API void uECC_vli_bytesToNative(uint8_t *native, const uint8_t *bytes, - int num_bytes, - uECC_Curve curve) { - uECC_vli_nativeToBytes(native, num_bytes, bytes, curve); + int num_bytes) { + uECC_vli_nativeToBytes(native, num_bytes, bytes); } #else uECC_VLI_API void uECC_vli_nativeToBytes(uint8_t *bytes, int num_bytes, - const uECC_word_t *native, - uECC_Curve curve) { + const uECC_word_t *native) { wordcount_t i; for (i = 0; i < num_bytes; ++i) { unsigned b = num_bytes - 1 - i; @@ -844,8 +841,7 @@ uECC_VLI_API void uECC_vli_bytesToNative(uECC_word_t *native, const uint8_t *bytes, - int num_bytes, - uECC_Curve curve) { + int num_bytes) { wordcount_t i; uECC_vli_clear(native, (num_bytes + (uECC_WORD_SIZE - 1)) / uECC_WORD_SIZE); for (i = 0; i < num_bytes; ++i) { @@ -885,10 +881,10 @@ } if (EccPoint_compute_public_key(public, private, curve)) { - uECC_vli_nativeToBytes(private_key, BITS_TO_BYTES(curve->num_n_bits), private, curve); - uECC_vli_nativeToBytes(public_key, curve->num_bytes, public, curve); + uECC_vli_nativeToBytes(private_key, BITS_TO_BYTES(curve->num_n_bits), private); + uECC_vli_nativeToBytes(public_key, curve->num_bytes, public); uECC_vli_nativeToBytes( - public_key + curve->num_bytes, curve->num_bytes, public + curve->num_words, curve); + public_key + curve->num_bytes, curve->num_bytes, public + curve->num_words); return 1; } } @@ -908,10 +904,10 @@ uECC_word_t carry; wordcount_t num_words = curve->num_words; - uECC_vli_bytesToNative(private, private_key, BITS_TO_BYTES(curve->num_n_bits), curve); - uECC_vli_bytesToNative(public, public_key, curve->num_bytes, curve); + uECC_vli_bytesToNative(private, private_key, BITS_TO_BYTES(curve->num_n_bits)); + uECC_vli_bytesToNative(public, public_key, curve->num_bytes); uECC_vli_bytesToNative( - public + num_words, public_key + curve->num_bytes, curve->num_bytes, curve); + public + num_words, public_key + curve->num_bytes, curve->num_bytes); /* Regularize the bitcount for the private key so that attackers cannot use a side channel attack to learn the number of leading zeros. */ @@ -934,7 +930,7 @@ } EccPoint_mult(public, public, p2[!carry], initial_Z, curve->num_n_bits + 1, curve); - uECC_vli_nativeToBytes(secret, curve->num_bytes, public, curve); + uECC_vli_nativeToBytes(secret, curve->num_bytes, public); return !EccPoint_isZero(public, curve); } @@ -950,7 +946,7 @@ void uECC_decompress(const uint8_t *compressed, uint8_t *public_key, uECC_Curve curve) { uECC_word_t point[uECC_MAX_WORDS * 2]; uECC_word_t *y = point + curve->num_words; - uECC_vli_bytesToNative(point, compressed + 1, curve->num_bytes, curve); + uECC_vli_bytesToNative(point, compressed + 1, curve->num_bytes); curve->x_side(y, point, curve); curve->mod_sqrt(y, curve); @@ -958,8 +954,8 @@ uECC_vli_sub(y, curve->p, y, curve->num_words); } - uECC_vli_nativeToBytes(public_key, curve->num_bytes, point, curve); - uECC_vli_nativeToBytes(public_key + curve->num_bytes, curve->num_bytes, y, curve); + uECC_vli_nativeToBytes(public_key, curve->num_bytes, point); + uECC_vli_nativeToBytes(public_key + curve->num_bytes, curve->num_bytes, y); } #endif /* uECC_SUPPORT_COMPRESSED_POINT */ @@ -989,9 +985,9 @@ int uECC_valid_public_key(const uint8_t *public_key, uECC_Curve curve) { uECC_word_t public[uECC_MAX_WORDS * 2]; - uECC_vli_bytesToNative(public, public_key, curve->num_bytes, curve); + uECC_vli_bytesToNative(public, public_key, curve->num_bytes); uECC_vli_bytesToNative( - public + curve->num_words, public_key + curve->num_bytes, curve->num_bytes, curve); + public + curve->num_words, public_key + curve->num_bytes, curve->num_bytes); return uECC_valid_point(public, curve); } @@ -999,15 +995,15 @@ uECC_word_t private[uECC_MAX_WORDS]; uECC_word_t public[uECC_MAX_WORDS * 2]; - uECC_vli_bytesToNative(private, private_key, BITS_TO_BYTES(curve->num_n_bits), curve); + uECC_vli_bytesToNative(private, private_key, BITS_TO_BYTES(curve->num_n_bits)); if (!EccPoint_compute_public_key(public, private, curve)) { return 0; } - uECC_vli_nativeToBytes(public_key, curve->num_bytes, public, curve); + uECC_vli_nativeToBytes(public_key, curve->num_bytes, public); uECC_vli_nativeToBytes( - public_key + curve->num_bytes, curve->num_bytes, public + curve->num_words, curve); + public_key + curve->num_bytes, curve->num_bytes, public + curve->num_words); return 1; } @@ -1024,7 +1020,7 @@ bits_size = num_n_bytes; } uECC_vli_clear(native, num_n_words); - uECC_vli_bytesToNative(native, bits, bits_size, curve); + uECC_vli_bytesToNative(native, bits, bits_size); if (bits_size * 8 <= (unsigned)curve->num_n_bits) { return; } @@ -1094,9 +1090,9 @@ uECC_vli_modInv(k, k, curve->n, num_n_words); /* k = 1 / k' */ uECC_vli_modMult(k, k, tmp, curve->n, num_n_words); /* k = 1 / k */ - uECC_vli_nativeToBytes(signature, curve->num_bytes, p, curve); /* store r */ + uECC_vli_nativeToBytes(signature, curve->num_bytes, p); /* store r */ - uECC_vli_bytesToNative(tmp, private_key, BITS_TO_BYTES(curve->num_n_bits), curve); /* tmp = d */ + uECC_vli_bytesToNative(tmp, private_key, BITS_TO_BYTES(curve->num_n_bits)); /* tmp = d */ s[num_n_words - 1] = 0; uECC_vli_set(s, p, num_words); uECC_vli_modMult(s, tmp, s, curve->n, num_n_words); /* s = r*d */ @@ -1107,7 +1103,7 @@ if (uECC_vli_numBits(s, num_n_words) > (bitcount_t)curve->num_bytes * 8) { return 0; } - uECC_vli_nativeToBytes(signature + curve->num_bytes, curve->num_bytes, s, curve); + uECC_vli_nativeToBytes(signature + curve->num_bytes, curve->num_bytes, s); return 1; } @@ -1285,11 +1281,11 @@ r[num_n_words - 1] = 0; s[num_n_words - 1] = 0; - uECC_vli_bytesToNative(public, public_key, curve->num_bytes, curve); + uECC_vli_bytesToNative(public, public_key, curve->num_bytes); uECC_vli_bytesToNative( - public + num_words, public_key + curve->num_bytes, curve->num_bytes, curve); - uECC_vli_bytesToNative(r, signature, curve->num_bytes, curve); - uECC_vli_bytesToNative(s, signature + curve->num_bytes, curve->num_bytes, curve); + 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); /* r, s must not be 0. */ if (uECC_vli_isZero(r, num_words) || uECC_vli_isZero(s, num_words)) {
diff --git a/uECC_vli.h b/uECC_vli.h index 21df281..55bb385 100644 --- a/uECC_vli.h +++ b/uECC_vli.h
@@ -131,9 +131,9 @@ #endif /* Converts an integer in uECC native format to big-endian bytes. */ -void uECC_vli_nativeToBytes(uint8_t *bytes, int num_bytes, const uECC_word_t *native, uECC_Curve curve); +void uECC_vli_nativeToBytes(uint8_t *bytes, int num_bytes, const uECC_word_t *native); /* Converts big-endian bytes to an integer in uECC native format. */ -void uECC_vli_bytesToNative(uECC_word_t *native, const uint8_t *bytes, int num_bytes, uECC_Curve curve); +void uECC_vli_bytesToNative(uECC_word_t *native, const uint8_t *bytes, int num_bytes); unsigned uECC_curve_num_words(uECC_Curve curve); unsigned uECC_curve_num_bits(uECC_Curve curve);