]> git.cryptolib.org Git - avr-crypto-lib.git/blobdiff - main-noekeon-test.c
adding documentation
[avr-crypto-lib.git] / main-noekeon-test.c
index 2c19de49fb4b896bf378b4a8cc34330ccafaaa36..851c7bc663009bd4eabca77ed13a1b77575dac03 100644 (file)
@@ -1,3 +1,21 @@
+/* main-noekeon-test.c */
+/*
+    This file is part of the Crypto-avr-lib/microcrypt-lib.
+    Copyright (C) 2008  Daniel Otte (daniel.otte@rub.de)
+
+    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
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
 /*
  * serpent test-suit
  * 
@@ -62,6 +80,12 @@ void testrun_nessie_noekeon_direct(void){
        nessie_bc_run();
 }
 
+void testrun_nessie_noekeon(void){
+       testrun_nessie_noekeon_direct();
+       testrun_nessie_noekeon_indirect();
+}
+
+
 void testrun_stdtest_rundirect(void* data, void* key){
        uart_putstr_P(PSTR("\r\n                     "));
        uart_putstr_P(PSTR("k = "));
@@ -127,7 +151,6 @@ void testrun_stdtest_noekeon(void){
        noekeon_enc(data, &ctx);
        testrun_stdtest_runindirect(data, key3);
        
-       
        uart_putstr_P(PSTR("\r\nTest vectors for block cipher Noekeon in Direct-Key Mode:\r\n"));
        
        memset(key,  0, 16);
@@ -150,21 +173,13 @@ void testrun_stdtest_noekeon(void){
 }
 
 void testrun_performance_noekeon(void){
-       uint16_t i,c;
        uint64_t t;
        char str[16];
        uint8_t key[16], data[16];
        noekeon_ctx_t ctx;
        
        calibrateTimer();
-       getOverhead(&c, &i);
-       uart_putstr_P(PSTR("\r\n\r\n=== benchmark ==="));
-       utoa(c, str, 10);
-       uart_putstr_P(PSTR("\r\n\tconst overhead:     "));
-       uart_putstr(str);
-       utoa(i, str, 10);
-       uart_putstr_P(PSTR("\r\n\tinterrupt overhead: "));
-       uart_putstr(str);
+       print_overhead();
        
        memset(key,  0, 16);
        memset(data, 0, 16);
@@ -174,34 +189,28 @@ void testrun_performance_noekeon(void){
        t = stopTimer();
        uart_putstr_P(PSTR("\r\n\tctx-gen time: "));
        ultoa((unsigned long)t, str, 10);
-       uart_putstr(str);
-//     uart_hexdump(&t, 8);
-       
+       uart_putstr(str);       
        
        startTimer(1);
-       noekeon_enc(data, ctx);
+       noekeon_enc(data, &ctx);
        t = stopTimer();
        uart_putstr_P(PSTR("\r\n\tencrypt time: "));
        ultoa((unsigned long)t, str, 10);
-       uart_putstr(str);
-//     uart_hexdump(&t, 8);
-       
+       uart_putstr(str);       
        
        startTimer(1);
-       noekeon_dec(data, ctx);
+       noekeon_dec(data, &ctx);
        t = stopTimer();
        uart_putstr_P(PSTR("\r\n\tdecrypt time: "));
        ultoa((unsigned long)t, str, 10);
        uart_putstr(str);
-//     uart_hexdump(&t, 8);
+       
        uart_putstr_P(PSTR("\r\n"));
 }
 /*****************************************************************************
  *  main                                                                                                                                        *
  *****************************************************************************/
 
-typedef void(*void_fpt)(void);
-
 int main (void){
        char  str[20];
        DEBUG_INIT();
@@ -212,7 +221,7 @@ int main (void){
        uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
 
        PGM_P    u   = PSTR("nessie\0test\0direct\0indirect\0performance\0");
-       void_fpt v[] = {testrun_nessie_noekeon_direct
+       void_fpt v[] = {testrun_nessie_noekeon, 
                            testrun_stdtest_noekeon,
                            testrun_nessie_noekeon_direct, 
                            testrun_nessie_noekeon_indirect,