Example #1
0
void testrun_performance_noekeon(void){
	uint64_t t;
	char str[16];
	uint8_t key[16], data[16];
	noekeon_ctx_t ctx;
	
	calibrateTimer();
	print_overhead();
	
	memset(key,  0, 16);
	memset(data, 0, 16);
	
	startTimer(1);
	noekeon_init(key, &ctx);
	t = stopTimer();
	uart_putstr_P(PSTR("\r\n\tctx-gen time: "));
	ultoa((unsigned long)t, str, 10);
	uart_putstr(str);	
	
	startTimer(1);
	noekeon_enc(data, &ctx);
	t = stopTimer();
	uart_putstr_P(PSTR("\r\n\tencrypt time: "));
	ultoa((unsigned long)t, str, 10);
	uart_putstr(str);	
	
	startTimer(1);
	noekeon_dec(data, &ctx);
	t = stopTimer();
	uart_putstr_P(PSTR("\r\n\tdecrypt time: "));
	ultoa((unsigned long)t, str, 10);
	uart_putstr(str);
	
	uart_putstr_P(PSTR("\r\n"));
}
void testrun_stdtest_noekeon(void) {
    uint8_t key[16], data[16];
    uint8_t key3[16];
    noekeon_ctx_t ctx;

    cli_putstr_P(PSTR("\r\nTest vectors for block cipher Noekeon in Indirect-Key Mode:\r\n"));

    memset(key,  0, 16);
    memset(data, 0, 16);
    testrun_stdtest_runindirect(data, key);

    memset(key,  0xFF, 16);
    memset(data, 0xFF, 16);
    testrun_stdtest_runindirect(data, key);

    memset(key,  0, 16);
    memset(data, 0, 16);
    noekeon_init(key, &ctx);
    noekeon_enc(data, &ctx);
    memcpy(key3, data, 16);
    memset(key,  0xFF, 16);
    memset(data, 0xFF, 16);
    noekeon_init(key, &ctx);
    noekeon_enc(data, &ctx);
    testrun_stdtest_runindirect(data, key3);

    cli_putstr_P(PSTR("\r\nTest vectors for block cipher Noekeon in Direct-Key Mode:\r\n"));

    memset(key,  0, 16);
    memset(data, 0, 16);
    testrun_stdtest_rundirect(data, key);

    memset(key,  0xFF, 16);
    memset(data, 0xFF, 16);
    testrun_stdtest_rundirect(data, key);

    memset(key,  0, 16);
    memset(data, 0, 16);
    noekeon_enc(data, key);
    memcpy(key3, data, 16);
    memset(key,  0xFF, 16);
    memset(data, 0xFF, 16);
    noekeon_enc(data, key);
    testrun_stdtest_rundirect(data, key3);

}
void testrun_stdtest_runindirect(void* data, void* key) {
    noekeon_ctx_t ctx;
    cli_putstr_P(PSTR("\r\n                     "));
    cli_putstr_P(PSTR("k = "));
    cli_hexdump(key,16);

    cli_putstr_P(PSTR("\r\n                     "));
    cli_putstr_P(PSTR("a = "));
    cli_hexdump(data,16);
    noekeon_init(key, &ctx);
    noekeon_enc(data, &ctx);
    cli_putstr_P(PSTR("\r\nafter NESSIEencrypt, b = "));
    cli_hexdump(data,16);

    noekeon_dec(data, &ctx);
    cli_putstr_P(PSTR("\r\nafter NESSIEdecrypt, a?= "));
    cli_hexdump(data,16);
    cli_putstr_P(PSTR("\r\n"));
}
Example #4
0
/*****************************************************************************
 *  additional validation-functions											 *
 *****************************************************************************/
void noekeon_genctx_dummy(uint8_t* key, uint16_t keysize, void* ctx){
	noekeon_init(key, ctx);
}