]> git.cryptolib.org Git - avr-crypto-lib.git/blobdiff - main-md5-test.c
+ fix hmac-sha256
[avr-crypto-lib.git] / main-md5-test.c
diff --git a/main-md5-test.c b/main-md5-test.c
new file mode 100644 (file)
index 0000000..8d0e114
--- /dev/null
@@ -0,0 +1,81 @@
+/*
+ * md5 test suit
+ * 
+*/
+
+#include "config.h"
+#include "serial-tools.h"
+#include "uart.h"
+#include "debug.h"
+
+#include "md5.h"
+
+#include <stdint.h>
+#include <string.h>
+
+
+/*****************************************************************************
+ *  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) */
+}
+