diff --git a/library/x509_crt.c b/library/x509_crt.c
index c6d7358..9c7663c 100644
--- a/library/x509_crt.c
+++ b/library/x509_crt.c
@@ -601,13 +601,13 @@
     if ((ret = mbedtls_asn1_get_tag(p, end, &len,
                                     MBEDTLS_ASN1_OCTET_STRING)) != 0) {
         return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret);
-    } else {
-        subject_key_id->len = len;
-        subject_key_id->tag = MBEDTLS_ASN1_OCTET_STRING;
-        subject_key_id->p = *p;
-        *p += len;
     }
 
+    subject_key_id->len = len;
+    subject_key_id->tag = MBEDTLS_ASN1_OCTET_STRING;
+    subject_key_id->p = *p;
+    *p += len;
+
     if (*p != end) {
         return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS,
                                  MBEDTLS_ERR_ASN1_LENGTH_MISMATCH);
@@ -645,9 +645,7 @@
                                MBEDTLS_ASN1_CONTEXT_SPECIFIC);
 
     /* KeyIdentifier is an OPTIONAL field */
-    if (ret != 0 && ret != MBEDTLS_ERR_ASN1_UNEXPECTED_TAG) {
-        return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret);
-    } else if (ret == 0) {
+    if (ret == 0) {
         authority_key_id->keyIdentifier.len = len;
         authority_key_id->keyIdentifier.p = *p;
         /* Setting tag of the keyIdentfier intentionally to 0x04.
@@ -656,6 +654,8 @@
         authority_key_id->keyIdentifier.tag = MBEDTLS_ASN1_OCTET_STRING;
 
         *p += len;
+    } else if (ret != MBEDTLS_ERR_ASN1_UNEXPECTED_TAG) {
+        return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret);
     }
 
     if (*p < end) {
