]> git.cryptolib.org Git - avr-crypto-lib.git/blobdiff - test_src/main-threefish-test.c
threefish decryption (256, 512 and 1024 bit) in assembler
[avr-crypto-lib.git] / test_src / main-threefish-test.c
index f5d10ebb0b0c9fd1da7c22728890864a50984200..668eca0e5986144f1953f8b314b418c04fc5668b 100644 (file)
@@ -116,15 +116,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 +137,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 +164,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 +187,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 +217,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 +237,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 +289,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 +328,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 +368,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"));     
 }