From 019842119d4e1d350a1b1d34da02a130f528d9a5 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Thu, 9 Feb 2023 09:29:34 +0100 Subject: [PATCH] Adapt test for authority_key_id (parsing subject alt name) Signed-off-by: Przemek Stekiel --- tests/suites/test_suite_x509parse.function | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/tests/suites/test_suite_x509parse.function b/tests/suites/test_suite_x509parse.function index 6346a6cfd6..c7d341dd04 100644 --- a/tests/suites/test_suite_x509parse.function +++ b/tests/suites/test_suite_x509parse.function @@ -1506,6 +1506,8 @@ void x509_crt_parse_authoritykeyid(data_t *buf, int bufferCounter = 0; size_t issuerCounter = 0; unsigned int result = 0; + mbedtls_x509_subject_alternative_name san = { 0 }; + mbedtls_x509_name *pname = NULL; mbedtls_x509_crt_init(&crt); @@ -1518,14 +1520,18 @@ void x509_crt_parse_authoritykeyid(data_t *buf, /* Issuer test */ mbedtls_x509_sequence *issuerPtr = &crt.authority_key_id.authorityCertIssuer; - while (issuerPtr != NULL) { - /* First 9 bytes are always ASN1 coding related information that does not matter right now. Only the values are asserted */ - for (issuerCounter = 9u; issuerCounter < issuerPtr->buf.len; issuerCounter++) { + + TEST_ASSERT(mbedtls_x509_parse_subject_alt_name(&issuerPtr->buf, &san) == 0); + + pname = &san.san.directory_name; + + while (pname != NULL) { + for (issuerCounter = 0; issuerCounter < pname->val.len; issuerCounter++) { result |= - (authorityKeyId_issuer[bufferCounter++] != issuerPtr->buf.p[issuerCounter]); + (authorityKeyId_issuer[bufferCounter++] != pname->val.p[issuerCounter]); } bufferCounter++; /* Skipping the slash */ - issuerPtr = issuerPtr->next; + pname = pname->next; } TEST_ASSERT(result == 0);