mirror of
https://github.com/kmackay/micro-ecc.git
synced 2026-09-18 15:10:08 +00:00
Removed unused "curve" parameter from uECC_vli_nativeToBytes and
uECC_vli_bytesToNative functions.
This commit is contained in:
committed by
Ken MacKay
parent
6826dd4789
commit
8b3838ea5f
@@ -814,8 +814,7 @@ static uECC_word_t EccPoint_compute_public_key(uECC_word_t *result,
|
|||||||
|
|
||||||
uECC_VLI_API void uECC_vli_nativeToBytes(uint8_t *bytes,
|
uECC_VLI_API void uECC_vli_nativeToBytes(uint8_t *bytes,
|
||||||
int num_bytes,
|
int num_bytes,
|
||||||
const uint8_t *native,
|
const uint8_t *native) {
|
||||||
uECC_Curve curve) {
|
|
||||||
wordcount_t i;
|
wordcount_t i;
|
||||||
for (i = 0; i < num_bytes; ++i) {
|
for (i = 0; i < num_bytes; ++i) {
|
||||||
bytes[i] = native[(num_bytes - 1) - i];
|
bytes[i] = native[(num_bytes - 1) - i];
|
||||||
@@ -824,17 +823,15 @@ uECC_VLI_API void uECC_vli_nativeToBytes(uint8_t *bytes,
|
|||||||
|
|
||||||
uECC_VLI_API void uECC_vli_bytesToNative(uint8_t *native,
|
uECC_VLI_API void uECC_vli_bytesToNative(uint8_t *native,
|
||||||
const uint8_t *bytes,
|
const uint8_t *bytes,
|
||||||
int num_bytes,
|
int num_bytes) {
|
||||||
uECC_Curve curve) {
|
uECC_vli_nativeToBytes(native, num_bytes, bytes);
|
||||||
uECC_vli_nativeToBytes(native, num_bytes, bytes, curve);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
uECC_VLI_API void uECC_vli_nativeToBytes(uint8_t *bytes,
|
uECC_VLI_API void uECC_vli_nativeToBytes(uint8_t *bytes,
|
||||||
int num_bytes,
|
int num_bytes,
|
||||||
const uECC_word_t *native,
|
const uECC_word_t *native) {
|
||||||
uECC_Curve curve) {
|
|
||||||
wordcount_t i;
|
wordcount_t i;
|
||||||
for (i = 0; i < num_bytes; ++i) {
|
for (i = 0; i < num_bytes; ++i) {
|
||||||
unsigned b = num_bytes - 1 - i;
|
unsigned b = num_bytes - 1 - i;
|
||||||
@@ -844,8 +841,7 @@ uECC_VLI_API void uECC_vli_nativeToBytes(uint8_t *bytes,
|
|||||||
|
|
||||||
uECC_VLI_API void uECC_vli_bytesToNative(uECC_word_t *native,
|
uECC_VLI_API void uECC_vli_bytesToNative(uECC_word_t *native,
|
||||||
const uint8_t *bytes,
|
const uint8_t *bytes,
|
||||||
int num_bytes,
|
int num_bytes) {
|
||||||
uECC_Curve curve) {
|
|
||||||
wordcount_t i;
|
wordcount_t i;
|
||||||
uECC_vli_clear(native, (num_bytes + (uECC_WORD_SIZE - 1)) / uECC_WORD_SIZE);
|
uECC_vli_clear(native, (num_bytes + (uECC_WORD_SIZE - 1)) / uECC_WORD_SIZE);
|
||||||
for (i = 0; i < num_bytes; ++i) {
|
for (i = 0; i < num_bytes; ++i) {
|
||||||
@@ -885,10 +881,10 @@ int uECC_make_key(uint8_t *public_key,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (EccPoint_compute_public_key(public, private, curve)) {
|
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(private_key, BITS_TO_BYTES(curve->num_n_bits), private);
|
||||||
uECC_vli_nativeToBytes(public_key, curve->num_bytes, public, curve);
|
uECC_vli_nativeToBytes(public_key, curve->num_bytes, public);
|
||||||
uECC_vli_nativeToBytes(
|
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;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -908,10 +904,10 @@ int uECC_shared_secret(const uint8_t *public_key,
|
|||||||
uECC_word_t carry;
|
uECC_word_t carry;
|
||||||
wordcount_t num_words = curve->num_words;
|
wordcount_t num_words = curve->num_words;
|
||||||
|
|
||||||
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));
|
||||||
uECC_vli_bytesToNative(public, public_key, curve->num_bytes, curve);
|
uECC_vli_bytesToNative(public, public_key, curve->num_bytes);
|
||||||
uECC_vli_bytesToNative(
|
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
|
/* Regularize the bitcount for the private key so that attackers cannot use a side channel
|
||||||
attack to learn the number of leading zeros. */
|
attack to learn the number of leading zeros. */
|
||||||
@@ -934,7 +930,7 @@ int uECC_shared_secret(const uint8_t *public_key,
|
|||||||
}
|
}
|
||||||
|
|
||||||
EccPoint_mult(public, public, p2[!carry], initial_Z, curve->num_n_bits + 1, curve);
|
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);
|
return !EccPoint_isZero(public, curve);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -950,7 +946,7 @@ void uECC_compress(const uint8_t *public_key, uint8_t *compressed, uECC_Curve cu
|
|||||||
void uECC_decompress(const uint8_t *compressed, uint8_t *public_key, uECC_Curve curve) {
|
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 point[uECC_MAX_WORDS * 2];
|
||||||
uECC_word_t *y = point + curve->num_words;
|
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->x_side(y, point, curve);
|
||||||
curve->mod_sqrt(y, curve);
|
curve->mod_sqrt(y, curve);
|
||||||
|
|
||||||
@@ -958,8 +954,8 @@ void uECC_decompress(const uint8_t *compressed, uint8_t *public_key, uECC_Curve
|
|||||||
uECC_vli_sub(y, curve->p, y, curve->num_words);
|
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, point);
|
||||||
uECC_vli_nativeToBytes(public_key + curve->num_bytes, curve->num_bytes, y, curve);
|
uECC_vli_nativeToBytes(public_key + curve->num_bytes, curve->num_bytes, y);
|
||||||
}
|
}
|
||||||
#endif /* uECC_SUPPORT_COMPRESSED_POINT */
|
#endif /* uECC_SUPPORT_COMPRESSED_POINT */
|
||||||
|
|
||||||
@@ -989,9 +985,9 @@ int uECC_valid_point(const uECC_word_t *point, uECC_Curve curve) {
|
|||||||
int uECC_valid_public_key(const uint8_t *public_key, uECC_Curve curve) {
|
int uECC_valid_public_key(const uint8_t *public_key, uECC_Curve curve) {
|
||||||
uECC_word_t public[uECC_MAX_WORDS * 2];
|
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(
|
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);
|
return uECC_valid_point(public, curve);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -999,15 +995,15 @@ int uECC_compute_public_key(const uint8_t *private_key, uint8_t *public_key, uEC
|
|||||||
uECC_word_t private[uECC_MAX_WORDS];
|
uECC_word_t private[uECC_MAX_WORDS];
|
||||||
uECC_word_t public[uECC_MAX_WORDS * 2];
|
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)) {
|
if (!EccPoint_compute_public_key(public, private, curve)) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
uECC_vli_nativeToBytes(public_key, curve->num_bytes, public, curve);
|
uECC_vli_nativeToBytes(public_key, curve->num_bytes, public);
|
||||||
uECC_vli_nativeToBytes(
|
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;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1024,7 +1020,7 @@ static void bits2int(uECC_word_t *native,
|
|||||||
bits_size = num_n_bytes;
|
bits_size = num_n_bytes;
|
||||||
}
|
}
|
||||||
uECC_vli_clear(native, num_n_words);
|
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) {
|
if (bits_size * 8 <= (unsigned)curve->num_n_bits) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1094,9 +1090,9 @@ got_random:
|
|||||||
uECC_vli_modInv(k, k, curve->n, num_n_words); /* k = 1 / k' */
|
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_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;
|
s[num_n_words - 1] = 0;
|
||||||
uECC_vli_set(s, p, num_words);
|
uECC_vli_set(s, p, num_words);
|
||||||
uECC_vli_modMult(s, tmp, s, curve->n, num_n_words); /* s = r*d */
|
uECC_vli_modMult(s, tmp, s, curve->n, num_n_words); /* s = r*d */
|
||||||
@@ -1107,7 +1103,7 @@ got_random:
|
|||||||
if (uECC_vli_numBits(s, num_n_words) > (bitcount_t)curve->num_bytes * 8) {
|
if (uECC_vli_numBits(s, num_n_words) > (bitcount_t)curve->num_bytes * 8) {
|
||||||
return 0;
|
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;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1285,11 +1281,11 @@ int uECC_verify(const uint8_t *public_key,
|
|||||||
r[num_n_words - 1] = 0;
|
r[num_n_words - 1] = 0;
|
||||||
s[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(
|
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);
|
||||||
uECC_vli_bytesToNative(r, signature, curve->num_bytes, curve);
|
uECC_vli_bytesToNative(r, signature, curve->num_bytes);
|
||||||
uECC_vli_bytesToNative(s, signature + curve->num_bytes, curve->num_bytes, curve);
|
uECC_vli_bytesToNative(s, signature + curve->num_bytes, curve->num_bytes);
|
||||||
|
|
||||||
/* r, s must not be 0. */
|
/* r, s must not be 0. */
|
||||||
if (uECC_vli_isZero(r, num_words) || uECC_vli_isZero(s, num_words)) {
|
if (uECC_vli_isZero(r, num_words) || uECC_vli_isZero(s, num_words)) {
|
||||||
|
|||||||
+2
-2
@@ -131,9 +131,9 @@ void uECC_vli_mod_sqrt(uECC_word_t *a, uECC_Curve curve);
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Converts an integer in uECC native format to big-endian bytes. */
|
/* 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. */
|
/* 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_words(uECC_Curve curve);
|
||||||
unsigned uECC_curve_num_bits(uECC_Curve curve);
|
unsigned uECC_curve_num_bits(uECC_Curve curve);
|
||||||
|
|||||||
Reference in New Issue
Block a user