]> git.cryptolib.org Git - avr-crypto-lib.git/blobdiff - test_src/main-xtea-test.c
optimization of reduce for small delta
[avr-crypto-lib.git] / test_src / main-xtea-test.c
index 94a2475683b563f08be374086aeb40e5fb9898fb..26a42a3785874530c5a211d10361ce08536df40a 100644 (file)
@@ -1,6 +1,6 @@
 /* main-xtea-test.c */
 /*
-    This file is part of the This file is part of the AVR-Crypto-Lib.
+    This file is part of the AVR-Crypto-Lib.
     Copyright (C) 2008  Daniel Otte (daniel.otte@rub.de)
 
     This program is free software: you can redistribute it and/or modify
  * 
 */
 
-#include "config.h"
-#include "serial-tools.h"
-#include "uart.h"
-#include "debug.h"
+
+#include "main-test-common.h"
 
 #include "xtea.h"
 #include "nessie_bc_test.h"
 #include "performance_test.h"
-#include "cli.h"
-
-#include <stdint.h>
-#include <string.h>
-
-char* cipher_name = "XTEA";
+#include "bcal-performance.h"
+#include "bcal-nessie.h"
+#include "bcal_xtea.h"
 
-void xtea_genctx_dummy(uint8_t* key, uint16_t keysize, void* ctx){
-       memcpy(ctx, key, (keysize+7)/8);
-}
+char* algo_name = "XTEA";
 
-void xtea_enc_dummy(uint8_t* buffer, void* ctx){
-       xtea_enc((uint32_t*)buffer, (uint32_t*)buffer, ctx);
-}
+const bcdesc_t* const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const algolist[] PROGMEM = {
+       (bcdesc_t*)&xtea_desc,
+       NULL
+};
 
-void xtea_dec_dummy(uint8_t* buffer, void* ctx){
-       xtea_dec((uint32_t*)buffer, (uint32_t*)buffer, ctx);
-}
+/******************************************************************************/
 
 void testrun_nessie_xtea(void){
-       nessie_bc_ctx.blocksize_B =   8;
-       nessie_bc_ctx.keysize_b   = 128;
-       nessie_bc_ctx.name        = cipher_name;
-       nessie_bc_ctx.ctx_size_B  = 128/8;
-       nessie_bc_ctx.cipher_enc  = (nessie_bc_enc_fpt)xtea_enc_dummy;
-       nessie_bc_ctx.cipher_dec  = (nessie_bc_dec_fpt)xtea_dec_dummy;
-       nessie_bc_ctx.cipher_genctx  = (nessie_bc_gen_fpt)xtea_genctx_dummy;
-       
-       nessie_bc_run();        
+       bcal_nessie_multiple(algolist);
 }
 
 void testrun_performance_xtea(void){
-       uint64_t t;
-       uint8_t key[16], data[8];
-       
-       calibrateTimer();
-       print_overhead();
-       
-       memset(key,  0, 16);
-       memset(data, 0,  8);
-       
-       startTimer(1);
+       bcal_performance_multiple(algolist);
+}
+
+void test_xtea(void){
+       uint8_t key[16];
+       uint8_t data[8];
+
+       memset(key, 0, 16);
+       key[0] = 0x80;
+       memset(data, 0, 8);
+       cli_putstr_P(PSTR("\r\n*** XTEA test ***\r\n key:   "));
+       cli_hexdump(key, 16);
+       cli_putstr_P(PSTR("\r\n plain: "));
+       cli_hexdump(data, 8);
        xtea_enc(data, data, key);
-       t = stopTimer();
-       print_time_P(PSTR("\tencrypt time: "), t);
-       
-       startTimer(1);
+       cli_putstr_P(PSTR("\r\n crypt: "));
+       cli_hexdump(data, 8);
        xtea_dec(data, data, key);
-       t = stopTimer();
-       print_time_P(PSTR("\tdecrypt time: "), t);
-       
-       uart_putstr_P(PSTR("\r\n"));
+       cli_putstr_P(PSTR("\r\n plain: "));
+       cli_hexdump(data, 8);
 }
 
 /*****************************************************************************
  *  main                                                                                                                                        *
  *****************************************************************************/
 
+const char nessie_str[]      PROGMEM = "nessie";
+const char test_str[]        PROGMEM = "test";
+const char performance_str[] PROGMEM = "performance";
+const char echo_str[]        PROGMEM = "echo";
+
+const cmdlist_entry_t cmdlist[] PROGMEM = {
+       { nessie_str,      NULL, testrun_nessie_xtea},
+       { test_str,        NULL, test_xtea},
+       { performance_str, NULL, testrun_performance_xtea},
+       { echo_str,    (void*)1, (void_fpt)echo_ctrl},
+       { NULL,            NULL, NULL}
+};
+
 int main (void){
-       char  str[20];
-       DEBUG_INIT();
-       uart_putstr("\r\n");
-
-       uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
-       uart_putstr(cipher_name);
-       uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
-
-       PGM_P    u   = PSTR("nessie\0test\0performance\0");
-       void_fpt v[] = {testrun_nessie_xtea, testrun_nessie_xtea, testrun_performance_xtea};
-
-       while(1){ 
-               if (!getnextwordn(str,20)){DEBUG_S("DBG: W1\r\n"); goto error;}
-               if(execcommand_d0_P(str, u, v)<0){
-                       uart_putstr_P(PSTR("\r\nunknown command\r\n"));
-               }
-               continue;
-       error:
-               uart_putstr("ERROR\r\n");
+    main_setup();
+
+    for(;;){
+        welcome_msg(algo_name);
+        cmd_interface(cmdlist);
        }
 }