1/* BEGIN_HEADER */
2#include "mbedtls/md2.h"
3#include "mbedtls/md4.h"
4#include "mbedtls/md5.h"
5#include "mbedtls/ripemd160.h"
6/* END_HEADER */
7
8/* BEGIN_CASE depends_on:MBEDTLS_MD2_C */
9void md2_text( char *text_src_string, char *hex_hash_string )
10{
11    int ret;
12    unsigned char src_str[100];
13    unsigned char hash_str[33];
14    unsigned char output[16];
15
16    memset( src_str, 0x00, sizeof src_str );
17    memset( hash_str, 0x00, sizeof hash_str );
18    memset( output, 0x00, sizeof output );
19
20    strncpy( (char *) src_str, text_src_string, sizeof(src_str) - 1 );
21
22    ret = mbedtls_md2_ret( src_str, strlen( (char *) src_str ), output );
23    TEST_ASSERT( ret == 0 ) ;
24    hexify( hash_str, output, sizeof  output );
25
26    TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
27}
28/* END_CASE */
29
30/* BEGIN_CASE depends_on:MBEDTLS_MD4_C */
31void md4_text( char *text_src_string, char *hex_hash_string )
32{
33    int ret;
34    unsigned char src_str[100];
35    unsigned char hash_str[33];
36    unsigned char output[16];
37
38    memset( src_str, 0x00, sizeof src_str );
39    memset( hash_str, 0x00, sizeof hash_str );
40    memset( output, 0x00, sizeof output );
41
42    strncpy( (char *) src_str, text_src_string, sizeof(src_str) - 1 );
43
44    ret = mbedtls_md4_ret( src_str, strlen( (char *) src_str ), output );
45    TEST_ASSERT( ret == 0 );
46    hexify( hash_str, output, sizeof  output );
47
48    TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
49}
50/* END_CASE */
51
52/* BEGIN_CASE depends_on:MBEDTLS_MD5_C */
53void md5_text( char *text_src_string, char *hex_hash_string )
54{
55    int ret;
56    unsigned char src_str[100];
57    unsigned char hash_str[33];
58    unsigned char output[16];
59
60    memset( src_str, 0x00, sizeof src_str );
61    memset( hash_str, 0x00, sizeof hash_str );
62    memset( output, 0x00, sizeof output );
63
64    strncpy( (char *) src_str, text_src_string, sizeof(src_str) - 1 );
65
66    ret = mbedtls_md5_ret( src_str, strlen( (char *) src_str ), output );
67    TEST_ASSERT( ret == 0 );
68    hexify( hash_str, output, sizeof  output );
69
70    TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
71}
72/* END_CASE */
73
74/* BEGIN_CASE depends_on:MBEDTLS_RIPEMD160_C */
75void ripemd160_text( char *text_src_string, char *hex_hash_string )
76{
77    int ret;
78    unsigned char src_str[100];
79    unsigned char hash_str[41];
80    unsigned char output[20];
81
82    memset(src_str, 0x00, sizeof src_str);
83    memset(hash_str, 0x00, sizeof hash_str);
84    memset(output, 0x00, sizeof output);
85
86    strncpy( (char *) src_str, text_src_string, sizeof(src_str) - 1 );
87
88    ret = mbedtls_ripemd160_ret( src_str, strlen( (char *) src_str ), output );
89    TEST_ASSERT( ret == 0 );
90    hexify( hash_str, output, sizeof output );
91
92    TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
93}
94/* END_CASE */
95
96/* BEGIN_CASE depends_on:MBEDTLS_MD2_C:MBEDTLS_SELF_TEST */
97void md2_selftest()
98{
99    TEST_ASSERT( mbedtls_md2_self_test( 1 ) == 0 );
100}
101/* END_CASE */
102
103/* BEGIN_CASE depends_on:MBEDTLS_MD4_C:MBEDTLS_SELF_TEST */
104void md4_selftest()
105{
106    TEST_ASSERT( mbedtls_md4_self_test( 1 ) == 0 );
107}
108/* END_CASE */
109
110/* BEGIN_CASE depends_on:MBEDTLS_MD5_C:MBEDTLS_SELF_TEST */
111void md5_selftest()
112{
113    TEST_ASSERT( mbedtls_md5_self_test( 1 ) == 0 );
114}
115/* END_CASE */
116
117/* BEGIN_CASE depends_on:MBEDTLS_RIPEMD160_C:MBEDTLS_SELF_TEST */
118void ripemd160_selftest()
119{
120    TEST_ASSERT( mbedtls_ripemd160_self_test( 1 ) == 0 );
121}
122/* END_CASE */
123