From 4606bf3f38286777e2f8b725f2d3129e960ba0b9 Mon Sep 17 00:00:00 2001 From: Agathiyan Bragadeesh Date: Tue, 22 Aug 2023 17:29:18 +0100 Subject: [PATCH] Refactor reading AttributeValue in dn gets Signed-off-by: Agathiyan Bragadeesh --- library/x509_create.c | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/library/x509_create.c b/library/x509_create.c index 77f50667ae..475d2ba377 100644 --- a/library/x509_create.c +++ b/library/x509_create.c @@ -273,14 +273,23 @@ int mbedtls_x509_string_to_names(mbedtls_asn1_named_data **head, const char *nam } 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 @@ int mbedtls_x509_string_to_names(mbedtls_asn1_named_data **head, const char *nam 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,