1/* BEGIN_HEADER */ 2#include "mbedtls/pkcs5.h" 3#include "mbedtls/legacy_or_psa.h" 4/* END_HEADER */ 5 6/* BEGIN_DEPENDENCIES 7 * depends_on:MBEDTLS_PKCS5_C 8 * END_DEPENDENCIES 9 */ 10 11/* BEGIN_CASE */ 12void pbkdf2_hmac( int hash, data_t * pw_str, data_t * salt_str, 13 int it_cnt, int key_len, data_t * result_key_string ) 14{ 15 unsigned char key[100]; 16 17 PSA_INIT_IF_NO_MD(); 18 TEST_ASSERT( mbedtls_pkcs5_pbkdf2_hmac_ext( hash, pw_str->x, pw_str->len, 19 salt_str->x, salt_str->len, 20 it_cnt, key_len, key ) == 0 ); 21 22 TEST_ASSERT( mbedtls_test_hexcmp( key, result_key_string->x, 23 key_len, result_key_string->len ) == 0 ); 24 PSA_DONE_IF_NO_MD(); 25} 26/* END_CASE */ 27 28/* BEGIN_CASE depends_on:MBEDTLS_ASN1_PARSE_C */ 29void mbedtls_pkcs5_pbes2( int params_tag, data_t *params_hex, data_t *pw, 30 data_t *data, int ref_ret, data_t *ref_out ) 31{ 32 int my_ret; 33 mbedtls_asn1_buf params; 34 unsigned char *my_out = NULL; 35 36 PSA_INIT_IF_NO_MD(); 37 38 params.tag = params_tag; 39 params.p = params_hex->x; 40 params.len = params_hex->len; 41 42 my_out = mbedtls_test_zero_alloc( ref_out->len ); 43 44 my_ret = mbedtls_pkcs5_pbes2( ¶ms, MBEDTLS_PKCS5_DECRYPT, 45 pw->x, pw->len, data->x, data->len, my_out ); 46 TEST_ASSERT( my_ret == ref_ret ); 47 48 if( ref_ret == 0 ) 49 TEST_ASSERT( memcmp( my_out, ref_out->x, ref_out->len ) == 0 ); 50 51exit: 52 mbedtls_free( my_out ); 53 PSA_DONE_IF_NO_MD(); 54} 55/* END_CASE */ 56 57/* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ 58void pkcs5_selftest( ) 59{ 60 TEST_ASSERT( mbedtls_pkcs5_self_test( 1 ) == 0 ); 61} 62/* END_CASE */ 63