Refactor reading AttributeValue in dn gets

Signed-off-by: Agathiyan Bragadeesh <agathiyan.bragadeesh2@arm.com>
diff --git a/library/x509_create.c b/library/x509_create.c
index 77f5066..475d2ba 100644
--- a/library/x509_create.c
+++ b/library/x509_create.c
@@ -273,14 +273,23 @@
         }
 
         if (!in_attr_type && ((*c == ',' && *(c-1) != '\\') || c == end)) {
+            if (*s == '#') {
 #if defined(MBEDTLS_ASN1_PARSE_C)
-            if ((parse_ret =
-                     parse_attribute_value_der_encoded(s, (int) (c - s), data, &data_len,
-                                                       &tag)) != 0) {
-                if (numericoid) {
+                if ((parse_ret =
+                    parse_attribute_value_der_encoded(s, (int) (c - s), data, &data_len,
+                                                    &tag)) != 0) {
                     mbedtls_free(oid.p);
                     return MBEDTLS_ERR_X509_INVALID_NAME;
-                } else {
+                }     
+#else
+                return MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE
+#endif
+            } else {
+                if(numericoid) {
+                    mbedtls_free(oid.p);
+                    return MBEDTLS_ERR_X509_INVALID_NAME;
+                }
+                else {
                     if ((parse_ret =
                              parse_attribute_value_string(s, (int) (c - s), data,
                                                           &data_len)) != 0) {
@@ -290,20 +299,7 @@
                     tag = attr_descr->default_tag;
                 }
             }
-#else
-            if (!numericoid) {
-                if ((parse_ret =
-                         parse_attribute_value_string(s, (int) (c - s), data, &data_len)) != 0) {
-                    mbedtls_free(oid);
-                    return parse_ret;
-                }
-                tag = attr_descr->default_tag;
-            }
-            if (numericoid) {
-                mbedtls_free(oid);
-                return MBEDTLS_ERR_X509_INVALID_NAME;
-            }
-#endif
+
             mbedtls_asn1_named_data *cur =
                 mbedtls_asn1_store_named_data(head, (char *) oid.p, oid.len,
                                               (unsigned char *) data,