X-Git-Url: https://git.cryptolib.org/?a=blobdiff_plain;f=test_src%2Fmain-threefish-test.c;h=31748e45d78e47993e471c21ff8b517154cf04f1;hb=6483e60140be5fe4ab60de85cdf679fc0518dc99;hp=e40e59a727f37034d0728b1860780e4426053b82;hpb=c239a90de4f9ea98d7c0f5962d200c1a6a6033d1;p=avr-crypto-lib.git diff --git a/test_src/main-threefish-test.c b/test_src/main-threefish-test.c index e40e59a..31748e4 100644 --- a/test_src/main-threefish-test.c +++ b/test_src/main-threefish-test.c @@ -22,14 +22,18 @@ */ #include "config.h" -#include "serial-tools.h" -#include "uart.h" + +#include "uart_i.h" #include "debug.h" #include "threefish.h" #include "nessie_bc_test.h" #include "cli.h" #include "performance_test.h" +#include "bcal-performance.h" +#include "bcal_threefish256.h" +#include "bcal_threefish512.h" +#include "bcal_threefish1024.h" #include #include @@ -37,14 +41,32 @@ char* algo_name = "Threefish"; +const bcdesc_t* algolist[] PROGMEM = { + (bcdesc_t*)&threefish256_desc, + (bcdesc_t*)&threefish512_desc, + (bcdesc_t*)&threefish1024_desc, + NULL +}; /***************************************************************************** * 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 +83,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 +100,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){ @@ -125,6 +143,10 @@ void testrun_stdtest_threefish256(void){ threefish256_enc(data, &ctx); cli_putstr_P(PSTR("\r\ncipher: ")); 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; @@ -143,6 +165,9 @@ void testrun_stdtest_threefish256(void){ threefish256_enc(data, &ctx); cli_putstr_P(PSTR("\r\ncipher: ")); 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){ @@ -168,6 +193,10 @@ void testrun_stdtest_threefish512(void){ threefish512_enc(data, &ctx); cli_putstr_P(PSTR("\r\ncipher: ")); 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; @@ -188,6 +217,10 @@ void testrun_stdtest_threefish512(void){ threefish512_enc(data, &ctx); cli_putstr_P(PSTR("\r\ncipher: ")); 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){ @@ -211,6 +244,9 @@ void testrun_stdtest_threefish1024(void){ threefish1024_enc(data, &ctx); cli_putstr_P(PSTR("\r\ncipher: ")); 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; @@ -229,6 +265,9 @@ void testrun_stdtest_threefish1024(void){ threefish1024_enc(data, &ctx); cli_putstr_P(PSTR("\r\ncipher: ")); cli_hexdump_block(data, 128, 4, 16); + threefish1024_dec(data, &ctx); + cli_putstr_P(PSTR("\r\ndecipher: ")); + cli_hexdump_block(data, 128, 4, 16); } @@ -238,109 +277,8 @@ void testrun_stdtest_threefish(void){ testrun_stdtest_threefish1024(); } -void testrun_performance_threefish256(void){ - uint64_t t; - char str[16]; - uint8_t key[THREEFISH256_BLOCKSIZE_B]; - uint8_t data[THREEFISH256_BLOCKSIZE_B]; - uint8_t tweak[16]; - threefish256_ctx_t ctx; - - cli_putstr_P(PSTR("\r\nThreefish-256 performance:")); - - calibrateTimer(); - print_overhead(); - -// memset(key, 0, THREEFISH256_BLOCKSIZE_B); -// memset(tweak, 0, 16); - - startTimer(1); - threefish256_init(key, tweak, &ctx); - t = stopTimer(); - cli_putstr_P(PSTR("\r\n\tctx-gen time: ")); - ultoa((unsigned long)t, str, 10); - cli_putstr(str); - - startTimer(1); - threefish256_enc(data, &ctx); - t = stopTimer(); - cli_putstr_P(PSTR("\r\n\tencrypt time: ")); - ultoa((unsigned long)t, str, 10); - cli_putstr(str); - - cli_putstr_P(PSTR("\r\n")); -} - -void testrun_performance_threefish512(void){ - uint64_t t; - char str[16]; - uint8_t key[THREEFISH512_BLOCKSIZE_B]; - uint8_t data[THREEFISH512_BLOCKSIZE_B]; - uint8_t tweak[16]; - threefish512_ctx_t ctx; - - cli_putstr_P(PSTR("\r\nThreefish-512 performance:")); - - calibrateTimer(); - print_overhead(); - -// memset(key, 0, THREEFISH512_BLOCKSIZE_B); -// memset(tweak, 0, 16); - - startTimer(1); - threefish512_init(key, tweak, &ctx); - t = stopTimer(); - cli_putstr_P(PSTR("\r\n\tctx-gen time: ")); - ultoa((unsigned long)t, str, 10); - cli_putstr(str); - - startTimer(1); - threefish512_enc(data, &ctx); - t = stopTimer(); - cli_putstr_P(PSTR("\r\n\tencrypt time: ")); - ultoa((unsigned long)t, str, 10); - cli_putstr(str); - - cli_putstr_P(PSTR("\r\n")); -} - -void testrun_performance_threefish1024(void){ - uint64_t t; - char str[16]; - uint8_t key[THREEFISH1024_BLOCKSIZE_B]; - uint8_t data[THREEFISH1024_BLOCKSIZE_B]; - uint8_t tweak[16]; - threefish1024_ctx_t ctx; - - cli_putstr_P(PSTR("\r\nThreefish-1024 performance:")); - - calibrateTimer(); - print_overhead(); - -// memset(key, 0, THREEFISH1024_BLOCKSIZE_B); -// memset(tweak, 0, 16); - - startTimer(1); - threefish1024_init(key, tweak, &ctx); - t = stopTimer(); - cli_putstr_P(PSTR("\r\n\tctx-gen time: ")); - ultoa((unsigned long)t, str, 10); - cli_putstr(str); - - startTimer(1); - threefish1024_enc(data, &ctx); - t = stopTimer(); - cli_putstr_P(PSTR("\r\n\tencrypt time: ")); - ultoa((unsigned long)t, str, 10); - cli_putstr(str); - - cli_putstr_P(PSTR("\r\n")); -} - void testrun_performance_threefish(void){ - testrun_performance_threefish256(); - testrun_performance_threefish512(); - testrun_performance_threefish1024(); + bcal_performance_multiple(algolist); } void init_test(void){ @@ -384,8 +322,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);