Refactor parse_attribute_value_string

Signed-off-by: Agathiyan Bragadeesh <agathiyan.bragadeesh2@arm.com>
diff --git a/library/x509_create.c b/library/x509_create.c
index b83fcd9..307e8be 100644
--- a/library/x509_create.c
+++ b/library/x509_create.c
@@ -141,7 +141,7 @@
 {
     int n1 = hex_to_int(*hexpair);
     int n2 = hex_to_int(*(hexpair + 1));
-    
+
     if (n1 != -1 && n2 != -1) {
         return (n1 << 4) | n2;
     } else {
@@ -154,13 +154,12 @@
                                         unsigned char *data,
                                         size_t *data_len)
 {
-    const char *c = s;
-    const char *end = c + len;
-    int hexpair = 0;
+    const char *c;
+    const char *end = s + len;
     unsigned char *d = data;
     int n;
     
-    while (c < end) {
+    for (c = s; c < end; c++) {
         if (*c == '\\') {
             c++;
 
@@ -169,22 +168,19 @@
                 if (n == 0) {
                     return MBEDTLS_ERR_X509_INVALID_NAME;
                 }
-                hexpair = 1;
                 *(d++) = n;
                 c++;
+                continue;
             } else if (c == end || !strchr(" ,=+<>#;\"\\", *c)) {
                 return MBEDTLS_ERR_X509_INVALID_NAME;
             }
         }
-        if (!hexpair) {
-            *(d++) = *c;
-        }
+        
+        *(d++) = *c;
+        
         if (d - data == MBEDTLS_X509_MAX_DN_NAME_SIZE) {
             return MBEDTLS_ERR_X509_INVALID_NAME;
         }
-
-        hexpair = 0;
-        c++;
     }
     *data_len = d - data;
     return 0;