Tests for MD info functions
diff --git a/tests/suites/test_suite_md.data b/tests/suites/test_suite_md.data
index 349e18f..cb02814 100644
--- a/tests/suites/test_suite_md.data
+++ b/tests/suites/test_suite_md.data
@@ -1,3 +1,42 @@
+MD list
+md_list:
+
+Information on MD2
+depends_on:POLARSSL_MD2_C
+md_info:POLARSSL_MD_MD2:"MD2":16
+
+Information on MD4
+depends_on:POLARSSL_MD4_C
+md_info:POLARSSL_MD_MD4:"MD4":16
+
+Information on MD5
+depends_on:POLARSSL_MD5_C
+md_info:POLARSSL_MD_MD5:"MD5":16
+
+Information on RIPEMD160
+depends_on:POLARSSL_RIPEMD160_C
+md_info:POLARSSL_MD_RIPEMD160:"RIPEMD160":20
+
+Information on SHA1
+depends_on:POLARSSL_SHA1_C
+md_info:POLARSSL_MD_SHA1:"SHA1":20
+
+Information on SHA224
+depends_on:POLARSSL_SHA256_C
+md_info:POLARSSL_MD_SHA224:"SHA224":28
+
+Information on SHA256
+depends_on:POLARSSL_SHA256_C
+md_info:POLARSSL_MD_SHA256:"SHA256":32
+
+Information on SHA384
+depends_on:POLARSSL_SHA512_C
+md_info:POLARSSL_MD_SHA384:"SHA384":48
+
+Information on SHA512
+depends_on:POLARSSL_SHA512_C
+md_info:POLARSSL_MD_SHA512:"SHA512":64
+
 generic md2 Test vector RFC1319 #1
 depends_on:POLARSSL_MD2_C
 md_text:"md2":"":"8350e5a3e24c153df2275c9f80692773"
diff --git a/tests/suites/test_suite_md.function b/tests/suites/test_suite_md.function
index 502df45..1931154 100644
--- a/tests/suites/test_suite_md.function
+++ b/tests/suites/test_suite_md.function
@@ -8,6 +8,37 @@
  */
 
 /* BEGIN_CASE */
+void md_list( )
+{
+    const int *md_type_ptr;
+
+    for( md_type_ptr = md_list(); *md_type_ptr != 0; md_type_ptr++ )
+        TEST_ASSERT( md_info_from_type( *md_type_ptr ) != NULL );
+}
+/* END_CASE */
+
+/* BEGIN_CASE */
+void md_info( int md_type, char *md_name, int md_size )
+{
+    const md_info_t *md_info;
+    const int *md_type_ptr;
+    int found;
+
+    TEST_ASSERT( ( md_info = md_info_from_type( md_type ) ) != NULL );
+    TEST_ASSERT( md_info == md_info_from_string( md_name ) );
+
+    TEST_ASSERT( md_get_type( md_info ) == (md_type_t) md_type );
+    TEST_ASSERT( md_get_size( md_info ) == (unsigned char) md_size );
+
+    found = 0;
+    for( md_type_ptr = md_list(); *md_type_ptr != 0; md_type_ptr++ )
+        if( *md_type_ptr == md_type )
+            found = 1;
+    TEST_ASSERT( found == 1 );
+}
+/* END_CASE */
+
+/* BEGIN_CASE */
 void md_text( char *text_md_name, char *text_src_string, char *hex_hash_string )
 {
     char md_name[100];