diff --git a/boot/bootutil/src/image_ec256.c b/boot/bootutil/src/image_ec256.c
index b27a70b..f59a8f0 100644
--- a/boot/bootutil/src/image_ec256.c
+++ b/boot/bootutil/src/image_ec256.c
@@ -17,6 +17,8 @@
  * under the License.
  */
 
+#include <string.h>
+
 #include "syscfg/syscfg.h"
 
 #if MYNEWT_VAL(BOOTUTIL_SIGN_EC256)
@@ -89,21 +91,19 @@
 tinycrypt_read_bigint(uint32_t i[NUM_ECC_DIGITS], uint8_t **cp, uint8_t *end)
 {
     size_t len;
+    uint8_t bigint[NUM_ECC_BYTES];
 
     if (mbedtls_asn1_get_tag(cp, end, &len, MBEDTLS_ASN1_INTEGER)) {
         return -3;
     }
-
-    for (; *cp < end; *cp = *cp + 1, len--) {
-        if (**cp != 0) {
-            break;
-        }
+    if (len > NUM_ECC_BYTES) {
+        memcpy(bigint, *cp + len - NUM_ECC_BYTES, NUM_ECC_BYTES);
+    } else {
+        memset(bigint, 0, NUM_ECC_BYTES - len);
+        memcpy(bigint + NUM_ECC_BYTES - len, *cp, len);
     }
-    if (len != NUM_ECC_BYTES) {
-        return -1;
-    }
-    ecc_bytes2native(i, *cp);
     *cp += len;
+    ecc_bytes2native(i, bigint);
     return 0;
 }
 
@@ -156,10 +156,6 @@
         return -1;
     }
 
-    while (sig[slen - 1] == '\0') {
-        slen--;
-    }
-
     rc = tinycrypt_decode_sig(r, s, sig, sig + slen);
     if (rc) {
         return -1;
