/* * md5 test suit * */ #include "config.h" #include "serial-tools.h" #include "uart.h" #include "debug.h" #include "md5.h" #include #include /***************************************************************************** * additional validation-functions * *****************************************************************************/ /***************************************************************************** * self tests * *****************************************************************************/ /* * MD5 test suite: * MD5 ("") = d41d8cd98f00b204e9800998ecf8427e * MD5 ("a") = 0cc175b9c0f1b6a831c399e269772661 * MD5 ("abc") = 900150983cd24fb0d6963f7d28e17f72 * MD5 ("message digest") = f96b697d7cb7938d525a2f31aaf161d0 * MD5 ("abcdefghijklmnopqrstuvwxyz") = c3fcd3d76192e4007dfb496cca67e13b * MD5 ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") = * d174ab98d277d9f5a5611c2c9f419d9f * MD5 ("123456789012345678901234567890123456789012345678901234567890123456 * 78901234567890") = 57edf4a22be3c955ac49da2e2107b67a */ void testrun_md5(void){ md5_ctx_t s; char* testv[]={"", "a", "abc", "message digest", "abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", "12345678901234567890123456789012345678901234567890123456789012345678901234567890"}; uint8_t i; uart_putstr("\r\n=== MD5 test suit ==="); for(i=0; i<7; ++i){ uart_putstr("\r\n MD5 (\""); uart_putstr(testv[i]); uart_putstr("\") = \r\n"); md5_init(&s); md5_lastBlock(&s, testv[i], strlen(testv[i])*8); uart_hexdump(&s.a[0], 16); } } /***************************************************************************** * main * *****************************************************************************/ int main (void){ char str[20]; DEBUG_INIT(); uart_putstr("\r\n"); uart_putstr("\r\n\r\nCrypto-VS (MD5)\r\nloaded and running\r\n"); restart: while(1){ if (!getnextwordn(str,20)) {DEBUG_S("DBG: W1\r\n"); goto error;} if (strcmp(str, "test")) {DEBUG_S("DBG: 1b\r\n"); goto error;} testrun_md5(); goto restart; continue; error: uart_putstr("ERROR\r\n"); } /* while (1) */ }