X-Git-Url: https://git.cryptolib.org/?a=blobdiff_plain;f=test_src%2Fmain-threefish-test.c;h=f0af2b526d1239d1da4f348df749ed78543fe984;hb=52ec168ece9d61bd9cb652235dfe8faee6232a11;hp=f5d10ebb0b0c9fd1da7c22728890864a50984200;hpb=f215d8ed649fd5bf5f85eb34f851a1539302013d;p=avr-crypto-lib.git diff --git a/test_src/main-threefish-test.c b/test_src/main-threefish-test.c index f5d10eb..f0af2b5 100644 --- a/test_src/main-threefish-test.c +++ b/test_src/main-threefish-test.c @@ -23,7 +23,7 @@ #include "config.h" #include "serial-tools.h" -#include "uart.h" +#include "uart_i.h" #include "debug.h" #include "threefish.h" @@ -41,10 +41,22 @@ char* algo_name = "Threefish"; * additional validation-functions * *****************************************************************************/ +void threefish256_dump(threefish256_ctx_t* ctx){ + uint8_t i; + cli_putstr_P(PSTR("\r\n=== ctx dump (256) === \r\n k: ")); + for(i=0; i<5; ++i){ + cli_hexdump(&(ctx->k[i]), 8); + cli_putc(' '); + } + cli_putstr_P(PSTR("\r\n t: ")); + for(i=0; i<3; ++i){ + cli_hexdump(&(ctx->t[i]), 8); + cli_putc(' '); + } +} + void threefish256_dummy_init(const uint8_t* key, uint16_t keysize_b, void* ctx){ - uint8_t null[16]; - memset(null, 0, 16); - threefish256_init(key, null, ctx); + threefish256_init(key, NULL, ctx); } void testrun_nessie_threefish256(void){ @@ -61,9 +73,7 @@ void testrun_nessie_threefish256(void){ } void threefish512_dummy_init(const uint8_t* key, uint16_t keysize_b, void* ctx){ - uint8_t null[16]; - memset(null, 0, 16); - threefish512_init(key, null, ctx); + threefish512_init(key, NULL, ctx); } void testrun_nessie_threefish512(void){ @@ -80,9 +90,7 @@ void testrun_nessie_threefish512(void){ } void threefish1024_dummy_init(const uint8_t* key, uint16_t keysize_b, void* ctx){ - uint8_t null[16]; - memset(null, 0, 16); - threefish1024_init(key, null, ctx); + threefish1024_init(key, NULL, ctx); } void testrun_nessie_threefish1024(void){ @@ -116,15 +124,19 @@ void testrun_stdtest_threefish256(void){ memset(tweak, 0, 16); cli_putstr_P(PSTR("\r\nkey: ")); - cli_hexdump(key, 32); + cli_hexdump_block(key, 32, 4, 16); cli_putstr_P(PSTR("\r\ntweak: ")); - cli_hexdump(tweak, 16); + cli_hexdump_block(tweak, 16, 4, 16); cli_putstr_P(PSTR("\r\nplain: ")); - cli_hexdump(data, 32); + cli_hexdump_block(data, 32, 4, 16); threefish256_init(key, tweak, &ctx); threefish256_enc(data, &ctx); cli_putstr_P(PSTR("\r\ncipher: ")); - cli_hexdump(data, 32); + cli_hexdump_block(data, 32, 4, 16); + cli_putstr_P(PSTR("\r\ndecipher: ")); + threefish256_dec(data, &ctx); + cli_hexdump_block(data, 32, 4, 16); + /* second test */ for(i=0; i<32; ++i){ key[i] = 0x10+i; @@ -133,16 +145,19 @@ void testrun_stdtest_threefish256(void){ for(i=0; i<16; ++i){ tweak[i] = i; } - cli_putstr_P(PSTR("\r\n\r\nkey: ")); - cli_hexdump(key, 32); + cli_putstr_P(PSTR("\r\nkey: ")); + cli_hexdump_block(key, 32, 4, 16); cli_putstr_P(PSTR("\r\ntweak: ")); - cli_hexdump(tweak, 16); + cli_hexdump_block(tweak, 16, 4, 16); cli_putstr_P(PSTR("\r\nplain: ")); - cli_hexdump(data, 32); + cli_hexdump_block(data, 32, 4, 16); threefish256_init(key, tweak, &ctx); threefish256_enc(data, &ctx); cli_putstr_P(PSTR("\r\ncipher: ")); - cli_hexdump(data, 32); + cli_hexdump_block(data, 32, 4, 16); + cli_putstr_P(PSTR("\r\ndecipher: ")); + threefish256_dec(data, &ctx); + cli_hexdump_block(data, 32, 4, 16); } void testrun_stdtest_threefish512(void){ @@ -157,21 +172,21 @@ void testrun_stdtest_threefish512(void){ memset(tweak, 0, 16); cli_putstr_P(PSTR("\r\nkey: ")); - cli_hexdump(key, 32); + cli_hexdump_block(key, 32, 4, 16); cli_putstr_P(PSTR("\r\n ")); - cli_hexdump(key+32, 32); + cli_hexdump_block(key+32, 32, 4, 16); cli_putstr_P(PSTR("\r\ntweak: ")); - cli_hexdump(tweak, 16); + cli_hexdump_block(tweak, 16, 4, 16); cli_putstr_P(PSTR("\r\nplain: ")); - cli_hexdump(data, 32); - cli_putstr_P(PSTR("\r\n ")); - cli_hexdump(data+32, 32); + cli_hexdump_block(data, 64, 4, 16); threefish512_init(key, tweak, &ctx); threefish512_enc(data, &ctx); cli_putstr_P(PSTR("\r\ncipher: ")); - cli_hexdump(data, 32); - cli_putstr_P(PSTR("\r\n ")); - cli_hexdump(data+32, 32); + cli_hexdump_block(data, 64, 4, 16); + threefish512_dec(data, &ctx); + cli_putstr_P(PSTR("\r\ndecipher: ")); + cli_hexdump_block(data, 64, 4, 16); + for(i=0; i<64; ++i){ key[i] = 0x10+i; @@ -180,22 +195,22 @@ void testrun_stdtest_threefish512(void){ for(i=0; i<16; ++i){ tweak[i] = i; } - cli_putstr_P(PSTR("\r\n\r\nkey: ")); - cli_hexdump(key, 32); + cli_putstr_P(PSTR("\r\nkey: ")); + cli_hexdump_block(key, 32, 4, 16); cli_putstr_P(PSTR("\r\n ")); - cli_hexdump(key+32, 32); + cli_hexdump_block(key+32, 32, 4, 16); cli_putstr_P(PSTR("\r\ntweak: ")); - cli_hexdump(tweak, 16); + cli_hexdump_block(tweak, 16, 4, 16); cli_putstr_P(PSTR("\r\nplain: ")); - cli_hexdump(data, 32); - cli_putstr_P(PSTR("\r\n ")); - cli_hexdump(data+32, 32); + cli_hexdump_block(data, 64, 4, 16); threefish512_init(key, tweak, &ctx); threefish512_enc(data, &ctx); cli_putstr_P(PSTR("\r\ncipher: ")); - cli_hexdump(data, 32); - cli_putstr_P(PSTR("\r\n ")); - cli_hexdump(data+32, 32); + cli_hexdump_block(data, 64, 4, 16); + threefish512_dec(data, &ctx); + cli_putstr_P(PSTR("\r\ndecipher: ")); + cli_hexdump_block(data, 64, 4, 16); + } void testrun_stdtest_threefish1024(void){ @@ -210,33 +225,18 @@ void testrun_stdtest_threefish1024(void){ memset(tweak, 0, 16); cli_putstr_P(PSTR("\r\nkey: ")); - cli_hexdump(key, 32); - cli_putstr_P(PSTR("\r\n ")); - cli_hexdump(key+32, 32); - cli_putstr_P(PSTR("\r\n ")); - cli_hexdump(key+64, 32); - cli_putstr_P(PSTR("\r\n ")); - cli_hexdump(key+96, 32); + cli_hexdump_block(key, 128, 4, 16); cli_putstr_P(PSTR("\r\ntweak: ")); - cli_hexdump(tweak, 16); + cli_hexdump_block(tweak, 16, 4, 16); cli_putstr_P(PSTR("\r\nplain: ")); - cli_hexdump(data, 32); - cli_putstr_P(PSTR("\r\n ")); - cli_hexdump(data+32, 32); - cli_putstr_P(PSTR("\r\n ")); - cli_hexdump(data+64, 32); - cli_putstr_P(PSTR("\r\n ")); - cli_hexdump(data+96, 32); + cli_hexdump_block(data, 128, 4, 16); threefish1024_init(key, tweak, &ctx); threefish1024_enc(data, &ctx); cli_putstr_P(PSTR("\r\ncipher: ")); - cli_hexdump(data, 32); - cli_putstr_P(PSTR("\r\n ")); - cli_hexdump(data+32, 32); - cli_putstr_P(PSTR("\r\n ")); - cli_hexdump(data+64, 32); - cli_putstr_P(PSTR("\r\n ")); - cli_hexdump(data+96, 32); + cli_hexdump_block(data, 128, 4, 16); + threefish1024_dec(data, &ctx); + cli_putstr_P(PSTR("\r\ndecipher: ")); + cli_hexdump_block(data, 128, 4, 16); for(i=0; i<128; ++i){ key[i] = 0x10+i; @@ -245,34 +245,19 @@ void testrun_stdtest_threefish1024(void){ for(i=0; i<16; ++i){ tweak[i] = i; } - cli_putstr_P(PSTR("\r\n\r\nkey: ")); - cli_hexdump(key, 32); - cli_putstr_P(PSTR("\r\n ")); - cli_hexdump(key+32, 32); - cli_putstr_P(PSTR("\r\n ")); - cli_hexdump(key+64, 32); - cli_putstr_P(PSTR("\r\n ")); - cli_hexdump(key+96, 32); + cli_putstr_P(PSTR("\r\nkey: ")); + cli_hexdump_block(key, 128, 4, 16); cli_putstr_P(PSTR("\r\ntweak: ")); - cli_hexdump(tweak, 16); + cli_hexdump_block(tweak, 16, 4, 16); cli_putstr_P(PSTR("\r\nplain: ")); - cli_hexdump(data, 32); - cli_putstr_P(PSTR("\r\n ")); - cli_hexdump(data+32, 32); - cli_putstr_P(PSTR("\r\n ")); - cli_hexdump(data+64, 32); - cli_putstr_P(PSTR("\r\n ")); - cli_hexdump(data+96, 32); + cli_hexdump_block(data, 128, 4, 16); threefish1024_init(key, tweak, &ctx); threefish1024_enc(data, &ctx); cli_putstr_P(PSTR("\r\ncipher: ")); - cli_hexdump(data, 32); - cli_putstr_P(PSTR("\r\n ")); - cli_hexdump(data+32, 32); - cli_putstr_P(PSTR("\r\n ")); - cli_hexdump(data+64, 32); - cli_putstr_P(PSTR("\r\n ")); - cli_hexdump(data+96, 32); + cli_hexdump_block(data, 128, 4, 16); + threefish1024_dec(data, &ctx); + cli_putstr_P(PSTR("\r\ndecipher: ")); + cli_hexdump_block(data, 128, 4, 16); } @@ -312,6 +297,12 @@ void testrun_performance_threefish256(void){ ultoa((unsigned long)t, str, 10); cli_putstr(str); + startTimer(1); + threefish256_dec(data, &ctx); + t = stopTimer(); + cli_putstr_P(PSTR("\r\n\tdecrypt time: ")); + ultoa((unsigned long)t, str, 10); + cli_putstr(str); cli_putstr_P(PSTR("\r\n")); } @@ -345,6 +336,13 @@ void testrun_performance_threefish512(void){ ultoa((unsigned long)t, str, 10); cli_putstr(str); + startTimer(1); + threefish512_dec(data, &ctx); + t = stopTimer(); + cli_putstr_P(PSTR("\r\n\tdecrypt time: ")); + ultoa((unsigned long)t, str, 10); + cli_putstr(str); + cli_putstr_P(PSTR("\r\n")); } @@ -378,6 +376,13 @@ void testrun_performance_threefish1024(void){ ultoa((unsigned long)t, str, 10); cli_putstr(str); + startTimer(1); + threefish1024_dec(data, &ctx); + t = stopTimer(); + cli_putstr_P(PSTR("\r\n\tdecrypt time: ")); + ultoa((unsigned long)t, str, 10); + cli_putstr(str); + cli_putstr_P(PSTR("\r\n")); } @@ -428,8 +433,8 @@ cmdlist_entry_t cmdlist[] PROGMEM = { int main (void){ DEBUG_INIT(); - cli_rx = uart_getc; - cli_tx = uart_putc; + cli_rx = (cli_rx_fpt)uart0_getc; + cli_tx = (cli_tx_fpt)uart0_putc; for(;;){ cli_putstr_P(PSTR("\r\n\r\nCrypto-VS (")); cli_putstr(algo_name);