diff --git a/tinycrypt/ecc.c b/tinycrypt/ecc.c
index 9a28b18..cfdbc4b 100644
--- a/tinycrypt/ecc.c
+++ b/tinycrypt/ecc.c
@@ -93,7 +93,8 @@
 
 int uECC_curve_public_key_size(uECC_Curve curve)
 {
-	return 2 * curve->num_bytes;
+	(void) curve;
+	return 2 * NUM_ECC_BYTES;
 }
 
 void uECC_vli_clear(uECC_word_t *vli)
@@ -1070,11 +1071,11 @@
 
 	uECC_word_t _public[NUM_ECC_WORDS * 2];
 
-	uECC_vli_bytesToNative(_public, public_key, curve->num_bytes);
+	uECC_vli_bytesToNative(_public, public_key, NUM_ECC_BYTES);
 	uECC_vli_bytesToNative(
 	_public + NUM_ECC_WORDS,
-	public_key + curve->num_bytes,
-	curve->num_bytes);
+	public_key + NUM_ECC_BYTES,
+	NUM_ECC_BYTES);
 
 	if (memcmp(_public, curve->G, NUM_ECC_WORDS * 2) == 0) {
 		return -4;
@@ -1109,10 +1110,10 @@
 		return 0;
 	}
 
-	uECC_vli_nativeToBytes(public_key, curve->num_bytes, _public);
+	uECC_vli_nativeToBytes(public_key, NUM_ECC_BYTES, _public);
 	uECC_vli_nativeToBytes(
 	public_key +
-	curve->num_bytes, curve->num_bytes, _public + NUM_ECC_WORDS);
+	NUM_ECC_BYTES, NUM_ECC_BYTES, _public + NUM_ECC_WORDS);
 	return 1;
 }
 #else
diff --git a/tinycrypt/ecc_dh.c b/tinycrypt/ecc_dh.c
index b3f8f71..a1d7483 100644
--- a/tinycrypt/ecc_dh.c
+++ b/tinycrypt/ecc_dh.c
@@ -92,10 +92,10 @@
 				       BITS_TO_BYTES(curve->num_n_bits),
 				       _private);
 		uECC_vli_nativeToBytes(public_key,
-				       curve->num_bytes,
+				       NUM_ECC_BYTES,
 				       _public);
-		uECC_vli_nativeToBytes(public_key + curve->num_bytes,
-				       curve->num_bytes,
+		uECC_vli_nativeToBytes(public_key + NUM_ECC_BYTES,
+				       NUM_ECC_BYTES,
 				       _public + NUM_ECC_WORDS);
 
 		/* erasing temporary buffer used to store secret: */
@@ -133,10 +133,10 @@
 					       BITS_TO_BYTES(curve->num_n_bits),
 					       _private);
 			uECC_vli_nativeToBytes(public_key,
-					       curve->num_bytes,
+					       NUM_ECC_BYTES,
 					       _public);
-			uECC_vli_nativeToBytes(public_key + curve->num_bytes,
- 					       curve->num_bytes,
+			uECC_vli_nativeToBytes(public_key + NUM_ECC_BYTES,
+ 					       NUM_ECC_BYTES,
 					       _public + NUM_ECC_WORDS);
 
 			/* erasing temporary buffer that stored secret: */
@@ -155,7 +155,7 @@
 	uECC_word_t _public[NUM_ECC_WORDS * 2];
 	uECC_word_t _private[NUM_ECC_WORDS];
 	wordcount_t num_words = NUM_ECC_WORDS;
-	wordcount_t num_bytes = curve->num_bytes;
+	wordcount_t num_bytes = NUM_ECC_BYTES;
 	int r;
 
 	/* Converting buffers to correct bit order: */
diff --git a/tinycrypt/ecc_dsa.c b/tinycrypt/ecc_dsa.c
index f4af4b6..5c4ca15 100644
--- a/tinycrypt/ecc_dsa.c
+++ b/tinycrypt/ecc_dsa.c
@@ -147,7 +147,7 @@
 	uECC_vli_modInv(k, k, curve->n);       /* k = 1 / k' */
 	uECC_vli_modMult(k, k, tmp, curve->n); /* k = 1 / k */
 
-	uECC_vli_nativeToBytes(signature, curve->num_bytes, p); /* store r */
+	uECC_vli_nativeToBytes(signature, NUM_ECC_BYTES, p); /* store r */
 
 	/* tmp = d: */
 	uECC_vli_bytesToNative(tmp, private_key, BITS_TO_BYTES(curve->num_n_bits));
@@ -159,11 +159,11 @@
 	bits2int(tmp, message_hash, hash_size, curve);
 	uECC_vli_modAdd(s, tmp, s, curve->n); /* s = e + r*d */
 	uECC_vli_modMult(s, s, k, curve->n);  /* s = (e + r*d) / k */
-	if (uECC_vli_numBits(s) > (bitcount_t)curve->num_bytes * 8) {
+	if (uECC_vli_numBits(s) > (bitcount_t)NUM_ECC_BYTES * 8) {
 		return 0;
 	}
 
-	uECC_vli_nativeToBytes(signature + curve->num_bytes, curve->num_bytes, s);
+	uECC_vli_nativeToBytes(signature + NUM_ECC_BYTES, NUM_ECC_BYTES, s);
 	return 1;
 }
 
@@ -229,11 +229,11 @@
 	r[num_n_words - 1] = 0;
 	s[num_n_words - 1] = 0;
 
-	uECC_vli_bytesToNative(_public, public_key, curve->num_bytes);
-	uECC_vli_bytesToNative(_public + num_words, public_key + curve->num_bytes,
-			       curve->num_bytes);
-	uECC_vli_bytesToNative(r, signature, curve->num_bytes);
-	uECC_vli_bytesToNative(s, signature + curve->num_bytes, curve->num_bytes);
+	uECC_vli_bytesToNative(_public, public_key, NUM_ECC_BYTES);
+	uECC_vli_bytesToNative(_public + num_words, public_key + NUM_ECC_BYTES,
+			       NUM_ECC_BYTES);
+	uECC_vli_bytesToNative(r, signature, NUM_ECC_BYTES);
+	uECC_vli_bytesToNative(s, signature + NUM_ECC_BYTES, NUM_ECC_BYTES);
 
 	/* r, s must not be 0. */
 	if (uECC_vli_isZero(r) || uECC_vli_isZero(s)) {
