Remove struct curve entirely
diff --git a/include/tinycrypt/ecc.h b/include/tinycrypt/ecc.h
index 6b88aee..65381bd 100644
--- a/include/tinycrypt/ecc.h
+++ b/include/tinycrypt/ecc.h
@@ -120,12 +120,11 @@
#define NUM_ECC_BYTES (uECC_WORD_SIZE*NUM_ECC_WORDS)
#define NUM_ECC_BITS 256
-/* structure that represents an elliptic curve (e.g. p256):*/
-struct uECC_Curve_t;
-typedef const struct uECC_Curve_t * uECC_Curve;
-struct uECC_Curve_t {
- unsigned char dummy;
-};
+/* curve identifier (for API compatility - only P-256 is supported) */
+typedef enum {
+ curve_invalid = 0,
+ curve_secp256r1 = 0xff
+} uECC_Curve;
/*
* @brief computes doubling of point ion jacobian coordinates, in place.
@@ -157,11 +156,6 @@
extern const uECC_word_t curve_G[2 * NUM_ECC_WORDS];
extern const uECC_word_t curve_b[NUM_ECC_WORDS];
-/* definition of curve NIST p-256: */
-static const struct uECC_Curve_t curve_secp256r1 = {
- 0
-};
-
uECC_Curve uECC_secp256r1(void);
/*
diff --git a/tinycrypt/ecc.c b/tinycrypt/ecc.c
index 56580f4..03645c0 100644
--- a/tinycrypt/ecc.c
+++ b/tinycrypt/ecc.c
@@ -679,7 +679,7 @@
uECC_Curve uECC_secp256r1(void)
{
- return &curve_secp256r1;
+ return curve_secp256r1;
}
void vli_mmod_fast_secp256r1(unsigned int *result, unsigned int*product)
@@ -827,9 +827,6 @@
{
/* t1 = X1, t2 = Y1, t3 = X2, t4 = Y2 */
uECC_word_t t5[NUM_ECC_WORDS];
- const uECC_Curve curve = &curve_secp256r1;
-
- (void) curve;
uECC_vli_modSub(t5, X2, X1, curve_p); /* t5 = x2 - x1 */
uECC_vli_modMult_rnd(t5, t5, t5, s); /* t5 = (x2 - x1)^2 = A */
@@ -869,9 +866,6 @@
uECC_word_t t5[NUM_ECC_WORDS];
uECC_word_t t6[NUM_ECC_WORDS];
uECC_word_t t7[NUM_ECC_WORDS];
- const uECC_Curve curve = &curve_secp256r1;
-
- (void) curve;
uECC_vli_modSub(t5, X2, X1, curve_p); /* t5 = x2 - x1 */
uECC_vli_modMult_rnd(t5, t5, t5, s); /* t5 = (x2 - x1)^2 = A */