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 */