unifoming omac nameing; +auto help

This commit is contained in:
bg 2008-08-27 03:21:27 +00:00
parent 7cd0bb77cb
commit 3a571bf2d5
5 changed files with 87 additions and 20 deletions

View File

@ -164,7 +164,11 @@ define LISTING_TEMPLATE
$(1)_LIST: $(2)
endef
$(foreach algo, $(ALGORITHMS),$(eval $(call LISTING_TEMPLATE,$(call uc, $(algo)), $(patsubst %.o,%.lst,$(algo)_OBJ) )))
$(foreach algo, $(ALGORITHMS),$(eval $(call LISTING_TEMPLATE,$(call uc, $(algo)), \
$(patsubst %,$(LIST_DIR)%, \
$(patsubst $(BIN_DIR)%,%, \
$(patsubst $(TESTBIN_DIR)%,%, \
$(patsubst %.o,%.lst,$($(algo)_OBJ)))) ))))
listings: $(patsubst %,%_LIST,$(ALGORITHMS))

View File

@ -43,5 +43,7 @@
//#define ATMEGA644 /* this is now done by make */
#define CLI_AUTO_HELP
#endif

View File

@ -4,14 +4,14 @@
#include "noekeon.h"
#include <stdint.h>
typedef uint8_t noekeon_omac_ctx_t[16];
typedef uint8_t omac_noekeon_ctx_t[16];
void omac_noekeon_init(noekeon_omac_ctx_t* ctx);
void omac_noekeont_tweak(uint8_t t, const void* key, noekeon_omac_ctx_t* ctx);
void omac_noekeon_init(omac_noekeon_ctx_t* ctx);
void omac_noekeont_tweak(uint8_t t, const void* key, omac_noekeon_ctx_t* ctx);
void omac_noekeon_next(const void* buffer, const void* key,
noekeon_omac_ctx_t* ctx);
omac_noekeon_ctx_t* ctx);
void omac_noekeon_last(const void* buffer, uint8_t length_b, const void* key,
noekeon_omac_ctx_t* ctx);
omac_noekeon_ctx_t* ctx);
void omac_noekeon(void* dest, const void* msg, uint16_t msglength_b,
const void* key, uint8_t t);

View File

@ -29,6 +29,7 @@
#include <stdint.h>
#include <string.h>
#include <avr/pgmspace.h>
#include "config.h"
int16_t findstring_d0(const char* str, const char* v){
uint8_t i=0;
@ -56,8 +57,26 @@ int16_t findstring_d0_P(const char* str, PGM_P v){
return -1;
}
#ifdef CLI_AUTO_HELP
#include "uart.h"
void cli_auto_help_P(PGM_P dbzstr){
char c;
uart_putstr_P(PSTR("\r\n[auto help] available commands are:\r\n\t"));
do{
while((c=pgm_read_byte(dbzstr++))!=0){
uart_putc(c);
}
uart_putstr_P(PSTR("\r\n\t"));
}while((c=pgm_read_byte(dbzstr))!=0);
uart_putstr_P(PSTR("\r\n"));
}
#endif
int16_t execcommand_d0_P(const char* str, PGM_P v, void(*fpt[])(void) ){
uint8_t i=0;
PGM_P commands=v;
while(pgm_read_byte(v)){
if(!strcmp_P(str, v)){
(fpt[i])();
@ -67,6 +86,7 @@ int16_t execcommand_d0_P(const char* str, PGM_P v, void(*fpt[])(void) ){
;
++i;
}
cli_auto_help_P(commands);
return -1;
}

View File

@ -31,7 +31,9 @@
#include "cli.h"
#include "nessie_mac_test.h"
#include "performance_test.h"
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
@ -56,7 +58,7 @@ void test_mac(void* key, void* data, uint16_t datalength_b){
}
void testrun_test_noekeonomac(void){
void testrun_test_omac_noekeon(void){
uint8_t key[16], data[64];
uint16_t i;
memset(key, 0xAA, 16);
@ -70,16 +72,16 @@ void testrun_test_noekeonomac(void){
uint8_t stat_key[16];
void noekeonomac_next_dummy(void* buffer, void* ctx){
void omac_noekeon_next_dummy(void* buffer, void* ctx){
omac_noekeon_next(buffer, stat_key, ctx);
}
void noekeonomac_init_dummy(void* key, uint16_t keysize_b, void* ctx){
void omac_noekeon_init_dummy(void* key, uint16_t keysize_b, void* ctx){
omac_noekeon_init(ctx);
memcpy(stat_key, key, 16);
}
void noekeonomac_last_dummy(void* buffer, uint16_t size_b, void* key, uint16_t keysize_b, void* ctx){
void omac_noekeon_last_dummy(void* buffer, uint16_t size_b, void* key, uint16_t keysize_b, void* ctx){
while(size_b>128){
omac_noekeon_next(buffer, key, ctx);
size_b -= 128;
@ -88,26 +90,63 @@ void noekeonomac_last_dummy(void* buffer, uint16_t size_b, void* key, uint16_t k
omac_noekeon_last(buffer, size_b, key, ctx);
}
void noekeonomac_conv_dummy(void* buffer, void* ctx){
void omac_noekeon_conv_dummy(void* buffer, void* ctx){
memcpy(buffer, ctx, 16);
}
void testrun_nessie_noekeonomac(void){
void testrun_nessie_omac_noekeon(void){
nessie_mac_ctx.macsize_b = 128;
nessie_mac_ctx.keysize_b = 128;
nessie_mac_ctx.blocksize_B = 16;
nessie_mac_ctx.ctx_size_B = sizeof(noekeon_omac_ctx_t);
nessie_mac_ctx.ctx_size_B = sizeof(omac_noekeon_ctx_t);
nessie_mac_ctx.name = algo_name;
nessie_mac_ctx.mac_init = noekeonomac_init_dummy;
nessie_mac_ctx.mac_next = noekeonomac_next_dummy;
nessie_mac_ctx.mac_last = noekeonomac_last_dummy;
nessie_mac_ctx.mac_conv = noekeonomac_conv_dummy;
nessie_mac_ctx.mac_init = omac_noekeon_init_dummy;
nessie_mac_ctx.mac_next = omac_noekeon_next_dummy;
nessie_mac_ctx.mac_last = omac_noekeon_last_dummy;
nessie_mac_ctx.mac_conv = omac_noekeon_conv_dummy;
nessie_mac_run();
}
/******************************************************************************/
void testrun_performance_omac_noekeon(void){
uint64_t t;
char str[16];
uint8_t data[16], key[16];
omac_noekeon_ctx_t ctx;
calibrateTimer();
print_overhead();
memset(data, 0, 16);
memset(key, 0, 16);
startTimer(1);
omac_noekeon_init(&ctx);
t = stopTimer();
uart_putstr_P(PSTR("\r\n\tctx-gen time: "));
ultoa((unsigned long)t, str, 10);
uart_putstr(str);
startTimer(1);
omac_noekeon_next(data, key, &ctx);
t = stopTimer();
uart_putstr_P(PSTR("\r\n\tone-block time: "));
ultoa((unsigned long)t, str, 10);
uart_putstr(str);
startTimer(1);
omac_noekeon_last(data, 128, key, &ctx);
t = stopTimer();
uart_putstr_P(PSTR("\r\n\tlast block time: "));
ultoa((unsigned long)t, str, 10);
uart_putstr(str);
uart_putstr_P(PSTR("\r\n"));
}
/*****************************************************************************
* main *
@ -122,8 +161,10 @@ int main (void){
uart_putstr(algo_name);
uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
PGM_P u = PSTR("nessie\0test\0");
void_fpt v[] = {testrun_nessie_noekeonomac, testrun_test_noekeonomac};
PGM_P u = PSTR("nessie\0test\0performance\0");
void_fpt v[] = {testrun_nessie_omac_noekeon,
testrun_test_omac_noekeon,
testrun_performance_omac_noekeon};
while(1){
if (!getnextwordn(str,20)){DEBUG_S("DBG: W1\r\n"); goto error;}