/* BEGIN_HEADER */ #include "mbedtls/pkcs5.h" #include "mbedtls/legacy_or_psa.h" /* END_HEADER */ /* BEGIN_DEPENDENCIES * depends_on:MBEDTLS_PKCS5_C * END_DEPENDENCIES */ /* BEGIN_CASE */ void pbkdf2_hmac(int hash, data_t *pw_str, data_t *salt_str, int it_cnt, int key_len, data_t *result_key_string) { unsigned char key[100]; PSA_INIT_IF_NO_MD(); TEST_ASSERT(mbedtls_pkcs5_pbkdf2_hmac_ext(hash, pw_str->x, pw_str->len, salt_str->x, salt_str->len, it_cnt, key_len, key) == 0); TEST_ASSERT(mbedtls_test_hexcmp(key, result_key_string->x, key_len, result_key_string->len) == 0); PSA_DONE_IF_NO_MD(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_ASN1_PARSE_C */ void mbedtls_pkcs5_pbes2(int params_tag, data_t *params_hex, data_t *pw, data_t *data, int ref_ret, data_t *ref_out) { int my_ret; mbedtls_asn1_buf params; unsigned char *my_out = NULL; PSA_INIT_IF_NO_MD(); params.tag = params_tag; params.p = params_hex->x; params.len = params_hex->len; my_out = mbedtls_test_zero_alloc(ref_out->len); my_ret = mbedtls_pkcs5_pbes2(¶ms, MBEDTLS_PKCS5_DECRYPT, pw->x, pw->len, data->x, data->len, my_out); TEST_ASSERT(my_ret == ref_ret); if (ref_ret == 0) { TEST_ASSERT(memcmp(my_out, ref_out->x, ref_out->len) == 0); } exit: mbedtls_free(my_out); PSA_DONE_IF_NO_MD(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ void pkcs5_selftest() { TEST_ASSERT(mbedtls_pkcs5_self_test(1) == 0); } /* END_CASE */