blob: 4fe6b40c213e986f3add0bb6e6e7b1d89611fa37 [file] [log] [blame]
Paul Bakkerb0c19a42013-06-24 19:26:38 +02001BEGIN_HEADER
2#include <polarssl/pkcs5.h>
3END_HEADER
4
5BEGIN_DEPENDENCIES
6depends_on:POLARSSL_PKCS5_C
7END_DEPENDENCIES
8
9BEGIN_CASE
Paul Bakkerdbd443d2013-08-16 13:38:47 +020010pbkdf2_hmac:#hash:hex_password_string:hex_salt_string:#it_cnt:#key_len:result_key_string
Paul Bakkerb0c19a42013-06-24 19:26:38 +020011{
12 unsigned char pw_str[100];
13 unsigned char salt_str[100];
14 unsigned char dst_str[100];
15
16 md_context_t ctx;
17 const md_info_t *info;
18
19 int pw_len, salt_len;
20 unsigned char key[100];
21
22 memset(pw_str, 0x00, 100);
23 memset(salt_str, 0x00, 100);
24 memset(dst_str, 0x00, 100);
25
26 pw_len = unhexify( pw_str, {hex_password_string} );
27 salt_len = unhexify( salt_str, {hex_salt_string} );
28
29
30 info = md_info_from_type( {hash} );
31 TEST_ASSERT( info != NULL );
32 TEST_ASSERT( md_init_ctx( &ctx, info ) == 0 );
33 TEST_ASSERT( pkcs5_pbkdf2_hmac( &ctx, pw_str, pw_len, salt_str, salt_len,
34 {it_cnt}, {key_len}, key ) == 0 );
Paul Bakker92b8dc02013-07-03 14:45:46 +020035 TEST_ASSERT( md_free_ctx( &ctx ) == 0 );
Paul Bakkerb0c19a42013-06-24 19:26:38 +020036
37 hexify( dst_str, key, {key_len} );
38 TEST_ASSERT( strcmp( (char *) dst_str, {result_key_string} ) == 0 );
39}
40END_CASE