X-Git-Url: https://git.cryptolib.org/?p=avr-crypto-lib.git;a=blobdiff_plain;f=test_src%2Fmain-sha1-test.c;h=26bee126bdf9649277b4d3cb807cc95abbf5ee14;hp=d6091f3adedbf033dc8649414243acac4b399658;hb=4b5da1dc27a791b5c448274a3db09cd035b33493;hpb=8bc6b638fc9d866778dc4d3664c3650b40616ed8 diff --git a/test_src/main-sha1-test.c b/test_src/main-sha1-test.c index d6091f3..26bee12 100644 --- a/test_src/main-sha1-test.c +++ b/test_src/main-sha1-test.c @@ -1,7 +1,7 @@ /* main-sha1-test.c */ /* This file is part of the AVR-Crypto-Lib. - Copyright (C) 2008 Daniel Otte (daniel.otte@rub.de) + Copyright (C) 2006-2015 Daniel Otte (bg@nerilex.org) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -21,27 +21,21 @@ * */ -#include "config.h" -#include "uart_i.h" -#include "debug.h" +#include "main-test-common.h" #include "sha1.h" #include "nessie_hash_test.h" #include "hfal_sha1.h" #include "hfal-performance.h" -#include -#include -#include -#include "cli.h" #include "shavs.h" #include "hfal_sha1.h" #include "dump.h" -char* algo_name = "SHA-1"; +char *algo_name = "SHA-1"; -const hfdesc_t* algolist[] PROGMEM = { +const hfdesc_t *const algolist[] PROGMEM = { (hfdesc_t*)&sha1_desc, NULL }; @@ -77,10 +71,10 @@ void sha1_ctx_dump(sha1_ctx_t *s){ } void testrun_sha1(void){ - sha1_hash_t hash; + uint8_t hash[20]; sha1(&hash,"abc",3*8); cli_putstr_P(PSTR("\r\nsha1(\"abc\") = \r\n\t")); - cli_hexdump(hash,SHA1_HASH_BITS/8); + cli_hexdump(hash, SHA1_HASH_BITS/8); sha1(&hash,"\0\0\0\0\0\0\0\0", 8*8); cli_putstr_P(PSTR("\r\nsha1(8 x 0x00) = \r\n\t")); @@ -126,7 +120,7 @@ void testrun_sha1(void){ void testrun_sha1_2(void){ sha1_ctx_t ctx; - sha1_hash_t hash; + uint8_t hash[20]; sha1(&hash,"",0); cli_putstr_P(PSTR("\r\nsha1(NULL) = \r\n\t")); cli_hexdump(hash,SHA1_HASH_BYTES); @@ -140,6 +134,37 @@ void testrun_sha1_2(void){ cli_hexdump(hash,SHA1_HASH_BYTES); } +/* +Msg = a38b899cae4edb191d88d861c842b6e32b9b67db66bdbdde8911d2b30fafa765a8190b963c28bf162c46d7b5dbde63556d114f43ceab88c7f65560f96c0c34c0 +MD = 722246b014af03ef3ba31364fc732a4ab8f38587 +*/ + +void testrun_sha1_506(void){ + uint8_t data[] = { + 0xa3, 0x8b, 0x89, 0x9c, 0xae, 0x4e, 0xdb, 0x19, + 0x1d, 0x88, 0xd8, 0x61, 0xc8, 0x42, 0xb6, 0xe3, + 0x2b, 0x9b, 0x67, 0xdb, 0x66, 0xbd, 0xbd, 0xde, + 0x89, 0x11, 0xd2, 0xb3, 0x0f, 0xaf, 0xa7, 0x65, + 0xa8, 0x19, 0x0b, 0x96, 0x3c, 0x28, 0xbf, 0x16, + 0x2c, 0x46, 0xd7, 0xb5, 0xdb, 0xde, 0x63, 0x55, + 0x6d, 0x11, 0x4f, 0x43, 0xce, 0xab, 0x88, 0xc7, + 0xf6, 0x55, 0x60, 0xf9, 0x6c, 0x0c, 0x34, 0xc0 }; + uint8_t ref[] = { + 0x72, 0x22, 0x46, 0xb0, 0x14, 0xaf, 0x03, 0xef, + 0x3b, 0xa3, 0x13, 0x64, 0xfc, 0x73, 0x2a, 0x4a, + 0xb8, 0xf3, 0x85, 0x87 }; + uint8_t hash[20]; + sha1(&hash,data,506); + cli_putstr_P(PSTR("\r\nsha1() = \r\n\t")); + cli_hexdump(hash,SHA1_HASH_BYTES); + cli_putstr_P(PSTR("\r\nshould = \r\n\t")); + cli_hexdump(ref,SHA1_HASH_BYTES); + if(memcmp(ref, hash, SHA1_HASH_BYTES)==0){ + cli_putstr_P(PSTR("\r\n[ok]")); + } else { + cli_putstr_P(PSTR("\r\n[fail]")); + } +} void testrun_performance_sha1(void){ hfal_performance_multiple(algolist); @@ -153,38 +178,38 @@ void testrun_performance_sha1(void){ const char nessie_str[] PROGMEM = "nessie"; const char test_str[] PROGMEM = "test"; const char test2_str[] PROGMEM = "test2"; +const char test506_str[] PROGMEM = "test506"; const char performance_str[] PROGMEM = "performance"; const char echo_str[] PROGMEM = "echo"; const char shavs_list_str[] PROGMEM = "shavs_list"; const char shavs_set_str[] PROGMEM = "shavs_set"; const char shavs_test1_str[] PROGMEM = "shavs_test1"; +const char shavs_test2_str[] PROGMEM = "shavs_test2"; const char dump_str[] PROGMEM = "dump"; -cmdlist_entry_t cmdlist[] PROGMEM = { +const cmdlist_entry_t cmdlist[] PROGMEM = { { nessie_str, NULL, testrun_nessie_sha1}, { test_str, NULL, testrun_sha1}, { test2_str, NULL, testrun_sha1_2}, + { test506_str, NULL, testrun_sha1_506}, { performance_str, NULL, testrun_performance_sha1}, { echo_str, (void*)1, (void_fpt)echo_ctrl}, { shavs_list_str, NULL, shavs_listalgos}, { shavs_set_str, (void*)1, (void_fpt)shavs_setalgo}, { shavs_test1_str, NULL, shavs_test1}, + { shavs_test2_str, NULL, shavs_test2}, { dump_str, (void*)1, (void_fpt)dump}, { NULL, NULL, NULL} }; int main (void){ - DEBUG_INIT(); + main_setup(); - cli_rx = (cli_rx_fpt)uart0_getc; - cli_tx = (cli_tx_fpt)uart0_putc; - shavs_algolist=(hfdesc_t**)algolist; + shavs_algolist=(hfdesc_t**)algolist; shavs_algo=(hfdesc_t*)&sha1_desc; for(;;){ - cli_putstr_P(PSTR("\r\n\r\nCrypto-VS (")); - cli_putstr(algo_name); - cli_putstr_P(PSTR(")\r\nloaded and running\r\n")); - cmd_interface(cmdlist); + welcome_msg(algo_name); + cmd_interface(cmdlist); } }