1
0
mirror of https://github.com/Mbed-TLS/mbedtls.git synced 2025-07-28 00:21:48 +03:00

Accept short name/ber encoded data in DNs

Signed-off-by: Agathiyan Bragadeesh <agathiyan.bragadeesh2@arm.com>
This commit is contained in:
Agathiyan Bragadeesh
2023-08-11 14:58:14 +01:00
parent 17984874af
commit 957ca0595d
2 changed files with 21 additions and 9 deletions

View File

@ -289,6 +289,22 @@ int mbedtls_x509_string_to_names(mbedtls_asn1_named_data **head, const char *nam
}
if (!in_attr_type && ((*c == ',' && *(c-1) != '\\') || c == end)) {
#if defined(MBEDTLS_ASN1_PARSE_C)
if ((parse_ret =
parse_attribute_value_ber_encoded(s, (int) (c - s), data, &data_len,
&tag)) != 0) {
if(numericoid) {
return MBEDTLS_ERR_X509_INVALID_NAME;
}
else {
if ((parse_ret =
parse_attribute_value_string(s, (int) (c - s), data, &data_len)) != 0) {
return parse_ret;
}
tag = attr_descr->default_tag;
}
}
#else
if (!numericoid) {
if ((parse_ret =
parse_attribute_value_string(s, (int) (c - s), data, &data_len)) != 0) {
@ -297,16 +313,9 @@ int mbedtls_x509_string_to_names(mbedtls_asn1_named_data **head, const char *nam
tag = attr_descr->default_tag;
}
if (numericoid) {
#if defined(MBEDTLS_ASN1_PARSE_C)
if ((parse_ret =
parse_attribute_value_ber_encoded(s, (int) (c - s), data, &data_len,
&tag)) != 0) {
return parse_ret;
}
#else
return MBEDTLS_ERR_X509_INVALID_NAME;
#endif
}
#endif
mbedtls_asn1_named_data *cur =
mbedtls_asn1_store_named_data(head, oid, strlen(oid),
(unsigned char *) data,