ECC Cleanup
cover ECC Cleanup
Revert ecc_make_key to original implementation, and cleanup API
Brian Gix (1):
shared/ecc: Make ecc_make_key() a stand alone API
src/shared/ecc.c | 25 +++++++++++++++++-------- src/shared/ecc.h | 4 +++- 2 files changed, 20 insertions(+), 9 deletions(-)
Signature · 1 line
2.14.3
cover shared/ecc: Make ecc_make_key() a stand alone API
And correct minor flaws in API descriptions
--- src/shared/ecc.c | 25 +++++++++++++++++-------- src/shared/ecc.h | 4 +++- 2 files changed, 20 insertions(+), 9 deletions(-)
src/shared/ecc.c +17 -8
@@ -883,20 +883,29 @@ bool ecc_make_public_key(const uint8_t private_key[32], uint8_t public_key[64])bool ecc_make_key (uint8_t public_key[64 ],uint8_t private_key[32 ]) { +struct ecc_point pk;uint64_t priv[NUM_ECC_DIGITS ]; -unsigned int tries =0 ; -bool result = false; +unsigned tries =0 ; + +do { +if (!get_random_number (priv) || (tries++ >=MAX_TRIES )) +return false; -for (tries =0 ; !result && tries <MAX_TRIES ; tries++) { -if (!get_random_number (priv)) +if (vli_is_zero (priv))continue ; -ecc_native2bytes (priv, private_key); +/* Make sure the private key is in the range [1, n-1]. */ +if (vli_cmp (curve_n, priv) !=1 ) +continue ; - result =ecc_make_public_key (private_key, public_key); - } +ecc_point_mult (&pk, &curve_g, priv,NULL ,vli_num_bits (priv)); + }while (ecc_point_is_zero (&pk)); -return result; +ecc_native2bytes (priv, private_key); +ecc_native2bytes (pk.x, public_key); +ecc_native2bytes (pk.y, &public_key[32 ]); + +return true; }bool ecc_valid_public_key (const uint8_t public_key[64 ])
src/shared/ecc.h +3 -1
@@ -28,9 +28,11 @@#include <stdint.h> /* Create a public key from a private key. +* +* Inputs: +* private_key - Your private key. * * Outputs: -* private_key - Const private key * public_key - Will be filled in with the public key. * * Returns true if the public key was generated successfully, false
Signature · 1 line
2.14.3
Hi Brian,
Quoted 11 lines · Brian Gix
Revert
ecc_make_keyto original implementation, and cleanup APIBrian Gix (1):
shared/ecc: Makeecc_make_key()a stand alone APIsrc/shared/ecc.c | 25 +++++++++++++++++-------- src/shared/ecc.h | 4 +++- 2 files changed, 20 insertions(+), 9 deletions(-)--
2.14.3
Applied, thanks.
Signature · 1 line
Luiz Augusto von Dentz