Fast AVR asm mmod is for secp256k1 (#50)
diff --git a/asm_avr.inc b/asm_avr.inc
index 0d4582f..b6c4a41 100644
--- a/asm_avr.inc
+++ b/asm_avr.inc
@@ -451,9 +451,9 @@
 #define asm_mmod_fast_secp160r1 1
 #endif /* uECC_SUPPORTS_secp160r1 */
 
-#if uECC_SUPPORTS_secp256r1
-static const struct uECC_Curve_t curve_secp256r1;
-static void vli_mmod_fast_secp256r1(uECC_word_t *result, uECC_word_t *product) {
+#if uECC_SUPPORTS_secp256k1
+static const struct uECC_Curve_t curve_secp256k1;
+static void vli_mmod_fast_secp256k1(uECC_word_t *result, uECC_word_t *product) {
     uint8_t carry = 0;
     __asm__ volatile (
         "in r30, __SP_L__ \n\t"
@@ -764,17 +764,17 @@
     
     if (carry > 0) {
         --carry;
-        uECC_vli_sub(result, result, curve_secp256r1.p, 32);
+        uECC_vli_sub(result, result, curve_secp256k1.p, 32);
     }
     if (carry > 0) {
-        uECC_vli_sub(result, result, curve_secp256r1.p, 32);
+        uECC_vli_sub(result, result, curve_secp256k1.p, 32);
     }
-    if (uECC_vli_cmp_unsafe(result, curve_secp256r1.p, 32) > 0) {
-        uECC_vli_sub(result, result, curve_secp256r1.p, 32);
+    if (uECC_vli_cmp_unsafe(result, curve_secp256k1.p, 32) > 0) {
+        uECC_vli_sub(result, result, curve_secp256k1.p, 32);
     }
 }
-#define asm_mmod_fast_secp256r1 1
-#endif /* uECC_SUPPORTS_secp256r1 */
+#define asm_mmod_fast_secp256k1 1
+#endif /* uECC_SUPPORTS_secp256k1 */
 
 #endif /* (uECC_OPTIMIZATION_LEVEL >= 2) */
 
diff --git a/curve-specific.inc b/curve-specific.inc
index 15586c3..81f725f 100644
--- a/curve-specific.inc
+++ b/curve-specific.inc
@@ -1152,7 +1152,7 @@
     uECC_vli_modAdd(result, result, curve->b, curve->p, num_words_secp256k1); /* r = x^3 + b */
 }
 
-#if (uECC_OPTIMIZATION_LEVEL > 0)
+#if (uECC_OPTIMIZATION_LEVEL > 0 && !asm_mmod_fast_secp256k1)
 static void omega_mult_secp256k1(uECC_word_t *result, const uECC_word_t *right);
 static void vli_mmod_fast_secp256k1(uECC_word_t *result, uECC_word_t *product) {
     uECC_word_t tmp[2 * num_words_secp256k1];
@@ -1241,7 +1241,7 @@
     result[num_words_secp256k1] = r0;
 }
 #endif /* uECC_WORD_SIZE */
-#endif /* (uECC_OPTIMIZATION_LEVEL > 0) */
+#endif /* (uECC_OPTIMIZATION_LEVEL > 0 &&  && !asm_mmod_fast_secp256k1) */
 
 #endif /* uECC_SUPPORTS_secp256k1 */