$(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))
#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);
#include "cli.h"
#include "nessie_mac_test.h"
+#include "performance_test.h"
+#include <stdlib.h>
#include <stdint.h>
#include <string.h>
}
-void testrun_test_noekeonomac(void){
+void testrun_test_omac_noekeon(void){
uint8_t key[16], data[64];
uint16_t i;
memset(key, 0xAA, 16);
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;
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 *
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;}