Add further testing

Signed-off-by: Ben Taylor <ben.taylor@linaro.org>
(cherry picked from commit 84966c1bda07dd01e38786b2caa9b7453a5adb95)

Backport note: resolved PKCS7 test conflicts by retaining the 3.6 dependency names (MBEDTLS_MD_CAN_SHA256:MBEDTLS_RSA_C) for the added regression cases.
This commit is contained in:
Ben Taylor 2026-06-02 15:47:08 +01:00
parent 544f1ccc1d
commit 439e194752
2 changed files with 42 additions and 3 deletions

View File

@ -15,9 +15,17 @@ depends_on:MBEDTLS_MD_CAN_SHA256
pkcs7_parse:"../framework/data_files/pkcs7_data_no_signers.der":MBEDTLS_PKCS7_SIGNED_DATA
PKCS7 Signed Data Parse reused object after multiple signers
depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY
depends_on:MBEDTLS_MD_CAN_SHA256:MBEDTLS_RSA_C
pkcs7_parse_reuse:"../framework/data_files/pkcs7_data_multiple_signed.der":"../framework/data_files/pkcs7_data_no_signers.der":MBEDTLS_PKCS7_SIGNED_DATA
PKCS7 Signed Data Parse reused object from multiple signers to one signer
depends_on:MBEDTLS_MD_CAN_SHA256:MBEDTLS_RSA_C
pkcs7_parse_reuse:"../framework/data_files/pkcs7_data_multiple_signed.der":"../framework/data_files/pkcs7_data_cert_signed_sha256.der":MBEDTLS_PKCS7_SIGNED_DATA
PKCS7 Signed Data Parse free resets context after multiple signers
depends_on:MBEDTLS_MD_CAN_SHA256:MBEDTLS_RSA_C
pkcs7_parse_free_resets_context:"../framework/data_files/pkcs7_data_multiple_signed.der":MBEDTLS_PKCS7_SIGNED_DATA
PKCS7 Signed Data Parse Fail with multiple certs #4
depends_on:MBEDTLS_MD_CAN_SHA256:MBEDTLS_RSA_C
pkcs7_parse:"../framework/data_files/pkcs7_data_multiple_certs_signed.der":MBEDTLS_ERR_PKCS7_FEATURE_UNAVAILABLE

View File

@ -69,13 +69,13 @@ void pkcs7_parse_reuse(char *first_pkcs7_file, char *second_pkcs7_file,
size_t first_buflen;
size_t second_buflen;
mbedtls_pkcs7_init(&pkcs7);
/* PKCS7 uses X509 which itself relies on PK under the hood and the latter
* can use PSA to store keys and perform operations so psa_crypto_init()
* must be called before. */
USE_PSA_INIT();
mbedtls_pkcs7_init(&pkcs7);
TEST_EQUAL(mbedtls_pk_load_file(first_pkcs7_file, &first_pkcs7_buf,
&first_buflen), 0);
@ -99,6 +99,37 @@ exit:
}
/* END_CASE */
/* BEGIN_CASE depends_on:MBEDTLS_FS_IO */
void pkcs7_parse_free_resets_context(char *pkcs7_file, int res_expect)
{
unsigned char *pkcs7_buf = NULL;
mbedtls_pkcs7 pkcs7;
size_t buflen;
mbedtls_pkcs7_init(&pkcs7);
/* PKCS7 uses X509 which itself relies on PK under the hood and the latter
* can use PSA to store keys and perform operations so psa_crypto_init()
* must be called before. */
USE_PSA_INIT();
TEST_EQUAL(mbedtls_pk_load_file(pkcs7_file, &pkcs7_buf, &buflen), 0);
TEST_EQUAL(mbedtls_pkcs7_parse_der(&pkcs7, pkcs7_buf, buflen),
res_expect);
mbedtls_pkcs7_free(&pkcs7);
TEST_ASSERT(pkcs7.raw.p == NULL);
TEST_ASSERT(pkcs7.signed_data.signers.next == NULL);
exit:
mbedtls_pkcs7_free(&pkcs7);
mbedtls_free(pkcs7_buf);
USE_PSA_DONE();
}
/* END_CASE */
/* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C */
void pkcs7_verify(char *pkcs7_file,
char *crt_files,