moving from uart to cli
This commit is contained in:
parent
fa7a41a129
commit
83d0614d8b
9
Makefile
9
Makefile
|
@ -6,13 +6,14 @@ STREAM_CIPHERS :=
|
||||||
HASHES :=
|
HASHES :=
|
||||||
MACS :=
|
MACS :=
|
||||||
PRNGS :=
|
PRNGS :=
|
||||||
|
ENCODINGS :=
|
||||||
|
|
||||||
# we use the gnu make standard library
|
# we use the gnu make standard library
|
||||||
include gmsl
|
include gmsl
|
||||||
include avr-makefile.inc
|
include avr-makefile.inc
|
||||||
include mkfiles/*.mk
|
include mkfiles/*.mk
|
||||||
|
|
||||||
ALGORITHMS = $(BLOCK_CIPHERS) $(STREAM_CIPHERS) $(HASHES) $(PRNGS) $(MACS)
|
ALGORITHMS = $(BLOCK_CIPHERS) $(STREAM_CIPHERS) $(HASHES) $(PRNGS) $(MACS) $(ENCODINGS)
|
||||||
ALGORITHMS_OBJ = $(patsubst %,%_OBJ, $(ALGORITHMS))
|
ALGORITHMS_OBJ = $(patsubst %,%_OBJ, $(ALGORITHMS))
|
||||||
ALGORITHMS_TEST_BIN = $(patsubst %,%_TEST_BIN, $(ALGORITHMS))
|
ALGORITHMS_TEST_BIN = $(patsubst %,%_TEST_BIN, $(ALGORITHMS))
|
||||||
|
|
||||||
|
@ -76,6 +77,8 @@ info:
|
||||||
@echo " $(MACS)"
|
@echo " $(MACS)"
|
||||||
@echo " PRNG functions:"
|
@echo " PRNG functions:"
|
||||||
@echo " $(PRNGS)"
|
@echo " $(PRNGS)"
|
||||||
|
@echo " encodings:"
|
||||||
|
@echo " $(ENCODINGS)"
|
||||||
# @echo " ALGORITHMS_TEST_BIN:"
|
# @echo " ALGORITHMS_TEST_BIN:"
|
||||||
# @echo " $(ALGORITHMS_TEST_BIN)"
|
# @echo " $(ALGORITHMS_TEST_BIN)"
|
||||||
# @echo " ALGORITHMS_TEST_TARGET_ELF:"
|
# @echo " ALGORITHMS_TEST_TARGET_ELF:"
|
||||||
|
@ -164,6 +167,7 @@ $(STREAM_CIPHERS_OBJ): $(patsubst %,%_OBJ, $(STREAM_CIPHERS))
|
||||||
$(HASHES_OBJ): $(patsubst %,%_OBJ, $(HASHES))
|
$(HASHES_OBJ): $(patsubst %,%_OBJ, $(HASHES))
|
||||||
$(PRNGS_OBJ): $(patsubst %,%_OBJ, $(PRNGS))
|
$(PRNGS_OBJ): $(patsubst %,%_OBJ, $(PRNGS))
|
||||||
$(MACS_OBJ): $(patsubst %,%_OBJ, $(MACS))
|
$(MACS_OBJ): $(patsubst %,%_OBJ, $(MACS))
|
||||||
|
$(ENCODINGS_OBJ): $(patsubst %,%_OBJ, $(ENCODINGS))
|
||||||
|
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -241,6 +245,9 @@ macs: $(patsubst %, %_OBJ, $(MACS))
|
||||||
.PHONY: prngs
|
.PHONY: prngs
|
||||||
prngs: $(patsubst %, %_OBJ, $(PRNGS))
|
prngs: $(patsubst %, %_OBJ, $(PRNGS))
|
||||||
|
|
||||||
|
.PHONY: encodings
|
||||||
|
encodings: $(patsubst %, %_OBJ, $(ENCODINGS))
|
||||||
|
|
||||||
tests: $(ALGORITHMS_TEST_BIN) \
|
tests: $(ALGORITHMS_TEST_BIN) \
|
||||||
$(ALGORITHMS_TEST_TARGET_ELF) \
|
$(ALGORITHMS_TEST_TARGET_ELF) \
|
||||||
$(ALGORITHMS_TEST_TARGET_HEX)
|
$(ALGORITHMS_TEST_TARGET_HEX)
|
||||||
|
|
|
@ -32,11 +32,11 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "sha1.h"
|
#include "sha1.h"
|
||||||
|
#include "hmac-sha1.h"
|
||||||
|
|
||||||
#define IPAD 0x36
|
#define IPAD 0x36
|
||||||
#define OPAD 0x5C
|
#define OPAD 0x5C
|
||||||
|
|
||||||
typedef sha1_ctx_t hmac_sha1_ctx_t;
|
|
||||||
|
|
||||||
#ifndef HMAC_SHORTONLY
|
#ifndef HMAC_SHORTONLY
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@ void hmac_sha1_init(hmac_sha1_ctx_t *s, void* key, uint16_t keylength_b){
|
||||||
sha1_init(s);
|
sha1_init(s);
|
||||||
sha1_nextBlock(s, buffer);
|
sha1_nextBlock(s, buffer);
|
||||||
#if defined SECURE_WIPE_BUFFER
|
#if defined SECURE_WIPE_BUFFER
|
||||||
memset(buffer, 0, SHA256_BLOCK_BITS/8);
|
memset(buffer, 0, SHA1_BLOCK_BYTES);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -85,7 +85,7 @@ void hmac_sha1_final(hmac_sha1_ctx_t *s, void* key, uint16_t keylength_b){
|
||||||
memcpy(s, &a, sizeof(sha1_ctx_t));
|
memcpy(s, &a, sizeof(sha1_ctx_t));
|
||||||
#if defined SECURE_WIPE_BUFFER
|
#if defined SECURE_WIPE_BUFFER
|
||||||
memset(buffer, 0, SHA1_BLOCK_BYTES);
|
memset(buffer, 0, SHA1_BLOCK_BYTES);
|
||||||
memset(a.h, 0, 20);
|
memset(&a, 0, sizeof(sha1_ctx_t));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -100,7 +100,7 @@ void hmac_sha1_lastBlock()
|
||||||
* keylength in bits!
|
* keylength in bits!
|
||||||
* message length in bits!
|
* message length in bits!
|
||||||
*/
|
*/
|
||||||
void hmac_sha1(void* dest, void* key, uint16_t keylength_b, void* msg, uint64_t msglength_b){ /* a one-shot*/
|
void hmac_sha1(void* dest, void* key, uint16_t keylength_b, void* msg, uint32_t msglength_b){ /* a one-shot*/
|
||||||
sha1_ctx_t s;
|
sha1_ctx_t s;
|
||||||
uint8_t i;
|
uint8_t i;
|
||||||
uint8_t buffer[SHA1_BLOCK_BYTES];
|
uint8_t buffer[SHA1_BLOCK_BYTES];
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* hmac-sha256.h */
|
/* hmac-sha1.h */
|
||||||
/*
|
/*
|
||||||
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)
|
Copyright (C) 2008 Daniel Otte (daniel.otte@rub.de)
|
||||||
|
@ -22,14 +22,14 @@
|
||||||
#include "sha1.h"
|
#include "sha1.h"
|
||||||
|
|
||||||
#define HMACSHA1_BITS SHA1_HASH_BITS
|
#define HMACSHA1_BITS SHA1_HASH_BITS
|
||||||
#define HMACSHA1_BYTES ((HMAC_BITS+7)/8)
|
#define HMACSHA1_BYTES ((HMACSHA1_BITS+7)/8)
|
||||||
|
|
||||||
typedef sha1_ctx_t hmac_sha1_ctx_t;
|
typedef sha1_ctx_t hmac_sha1_ctx_t;
|
||||||
|
|
||||||
|
|
||||||
void hmac_sha1_init(hmac_sha1_ctx_t *s, void* key, uint16_t keylength_b);
|
void hmac_sha1_init(hmac_sha1_ctx_t *s, void* key, uint16_t keylength_b);
|
||||||
void hmac_sha1_final(hmac_sha1_ctx_t *s, void* key, uint16_t keylength_b);
|
void hmac_sha1_final(hmac_sha1_ctx_t *s, void* key, uint16_t keylength_b);
|
||||||
void hmac_sha1(void* dest, void* key, uint16_t keylength_b, void* msg, uint64_t msglength_b);
|
void hmac_sha1(void* dest, void* key, uint16_t keylength_b, void* msg, uint32_t msglength_b);
|
||||||
|
|
||||||
|
|
||||||
#endif /*HMACSHA1_H_*/
|
#endif /*HMACSHA1_H_*/
|
||||||
|
|
|
@ -20,10 +20,10 @@
|
||||||
|
|
||||||
require 'serialport'
|
require 'serialport'
|
||||||
|
|
||||||
def read_line
|
def read_line(error_msg=true)
|
||||||
s = $sp.gets()
|
s = $sp.gets()
|
||||||
if s==nil
|
if s==nil
|
||||||
puts "ERROR: read timeout!\n";
|
puts("ERROR: read timeout!\n") if error_msg
|
||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
s.gsub(/\006/, '');
|
s.gsub(/\006/, '');
|
||||||
|
@ -36,7 +36,7 @@ def readTestVector(param)
|
||||||
set=0;
|
set=0;
|
||||||
vector=0;
|
vector=0;
|
||||||
begin
|
begin
|
||||||
lb = read_line()
|
lb = read_line(false)
|
||||||
if (m=/unknown command/.match(lb) || m=/[Ee][Rr]{2}[Oo][Rr]/.match(lb))
|
if (m=/unknown command/.match(lb) || m=/[Ee][Rr]{2}[Oo][Rr]/.match(lb))
|
||||||
puts("ERROR: "+lb);
|
puts("ERROR: "+lb);
|
||||||
exit(2);
|
exit(2);
|
||||||
|
|
|
@ -47,7 +47,7 @@ def get_next_assign(file, i)
|
||||||
return nil if file.eof
|
return nil if file.eof
|
||||||
l = file.gets().strip()
|
l = file.gets().strip()
|
||||||
if not /[^=]+=[^=]+/.match(l)
|
if not /[^=]+=[^=]+/.match(l)
|
||||||
value += l if /[0-9A-Fa-f]{5}/.match(l)
|
value += l if /^[0-9A-Fa-f]{5}/.match(l)
|
||||||
end
|
end
|
||||||
end until /[^=]+=[^=]+/.match(l)
|
end until /[^=]+=[^=]+/.match(l)
|
||||||
$last_assign[i] = l
|
$last_assign[i] = l
|
||||||
|
@ -59,7 +59,7 @@ def get_next_assign(file, i)
|
||||||
return nil if file.eof
|
return nil if file.eof
|
||||||
l = file.gets().strip()
|
l = file.gets().strip()
|
||||||
if not /[^=]+=[^=]+/.match(l)
|
if not /[^=]+=[^=]+/.match(l)
|
||||||
value += l if /[0-9A-Fa-f]{5}/.match(l)
|
value += l if /^[0-9A-Fa-f]{5}/.match(l)
|
||||||
end
|
end
|
||||||
end until /[^=]+=[^=]+/.match(l)
|
end until /[^=]+=[^=]+/.match(l)
|
||||||
$last_assign[i] = l
|
$last_assign[i] = l
|
||||||
|
@ -109,8 +109,8 @@ if ARGV.size==3
|
||||||
$quiet=true
|
$quiet=true
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
f1 = ARGV[1]
|
f1 = ARGV[0]
|
||||||
f2 = ARGV[2]
|
f2 = ARGV[1]
|
||||||
end
|
end
|
||||||
|
|
||||||
puts("compare("+f1+", "+f2+")")
|
puts("compare("+f1+", "+f2+")")
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# Makefile for HMAC-SHA256
|
# Makefile for HMAC-SHA256
|
||||||
ALGO_NAME := HMAC-SHA1
|
ALGO_NAME := HMAC-SHA1
|
||||||
|
|
||||||
# comment out the following line for removement of HMAC-SHA256 from the build process
|
# comment out the following line for removement of HMAC-SHA1 from the build process
|
||||||
MACS += $(ALGO_NAME)
|
MACS += $(ALGO_NAME)
|
||||||
|
|
||||||
$(ALGO_NAME)_OBJ := hmac-sha1.o sha1-asm.o
|
$(ALGO_NAME)_OBJ := hmac-sha1.o sha1-asm.o
|
||||||
|
|
|
@ -77,14 +77,14 @@ cmdlist_entry_t cmdlist[] PROGMEM = {
|
||||||
|
|
||||||
int main (void){
|
int main (void){
|
||||||
DEBUG_INIT();
|
DEBUG_INIT();
|
||||||
uart_putstr("\r\n");
|
|
||||||
|
|
||||||
cli_rx = uart_getc;
|
cli_rx = uart_getc;
|
||||||
cli_tx = uart_putc;
|
cli_tx = uart_putc;
|
||||||
for(;;){
|
for(;;){
|
||||||
uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
cli_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
||||||
uart_putstr(algo_name);
|
cli_putstr(algo_name);
|
||||||
uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
cli_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
||||||
cmd_interface(cmdlist);
|
cmd_interface(cmdlist);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -84,16 +84,16 @@ void testrun_test_aes(void){
|
||||||
0xe0, 0x37, 0x07, 0x34 };
|
0xe0, 0x37, 0x07, 0x34 };
|
||||||
aes128_ctx_t ctx;
|
aes128_ctx_t ctx;
|
||||||
aes128_init(key, &ctx);
|
aes128_init(key, &ctx);
|
||||||
uart_putstr_P(PSTR("\r\n\r\n cipher test (FIPS 197):\r\n key: "));
|
cli_putstr_P(PSTR("\r\n\r\n cipher test (FIPS 197):\r\n key: "));
|
||||||
uart_hexdump(key, 16);
|
cli_hexdump(key, 16);
|
||||||
uart_putstr_P(PSTR("\r\n plaintext: "));
|
cli_putstr_P(PSTR("\r\n plaintext: "));
|
||||||
uart_hexdump(data, 16);
|
cli_hexdump(data, 16);
|
||||||
aes128_enc(data, &ctx);
|
aes128_enc(data, &ctx);
|
||||||
uart_putstr_P(PSTR("\r\n ciphertext: "));
|
cli_putstr_P(PSTR("\r\n ciphertext: "));
|
||||||
uart_hexdump(data, 16);
|
cli_hexdump(data, 16);
|
||||||
aes128_dec(data, &ctx);
|
aes128_dec(data, &ctx);
|
||||||
uart_putstr_P(PSTR("\r\n plaintext: "));
|
cli_putstr_P(PSTR("\r\n plaintext: "));
|
||||||
uart_hexdump(data, 16);
|
cli_hexdump(data, 16);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -106,14 +106,14 @@ void testrun_testkey_aes128(void){
|
||||||
aes128_ctx_t ctx;
|
aes128_ctx_t ctx;
|
||||||
uint8_t i;
|
uint8_t i;
|
||||||
aes128_init(key, &ctx);
|
aes128_init(key, &ctx);
|
||||||
uart_putstr_P(PSTR("\r\n\r\n keyschedule test (FIPS 197):\r\n key: "));
|
cli_putstr_P(PSTR("\r\n\r\n keyschedule test (FIPS 197):\r\n key: "));
|
||||||
uart_hexdump(key, 16);
|
cli_hexdump(key, 16);
|
||||||
for(i=0; i<11; ++i){
|
for(i=0; i<11; ++i){
|
||||||
uart_putstr_P(PSTR("\r\n index: "));
|
cli_putstr_P(PSTR("\r\n index: "));
|
||||||
uart_putc('0'+i/10);
|
cli_putc('0'+i/10);
|
||||||
uart_putc('0'+i%10);
|
cli_putc('0'+i%10);
|
||||||
uart_putstr_P(PSTR(" roundkey "));
|
cli_putstr_P(PSTR(" roundkey "));
|
||||||
uart_hexdump(ctx.key[i].ks, 16);
|
cli_hexdump(ctx.key[i].ks, 16);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -128,14 +128,14 @@ void testrun_testkey_aes192(void){
|
||||||
uint8_t i;
|
uint8_t i;
|
||||||
memset(&ctx, 0, sizeof(aes192_ctx_t));
|
memset(&ctx, 0, sizeof(aes192_ctx_t));
|
||||||
aes192_init(key, &ctx);
|
aes192_init(key, &ctx);
|
||||||
uart_putstr_P(PSTR("\r\n\r\n keyschedule test (FIPS 197):\r\n key: "));
|
cli_putstr_P(PSTR("\r\n\r\n keyschedule test (FIPS 197):\r\n key: "));
|
||||||
uart_hexdump(key, 24);
|
cli_hexdump(key, 24);
|
||||||
for(i=0; i<13; ++i){
|
for(i=0; i<13; ++i){
|
||||||
uart_putstr_P(PSTR("\r\n index: "));
|
cli_putstr_P(PSTR("\r\n index: "));
|
||||||
uart_putc('0'+i/10);
|
cli_putc('0'+i/10);
|
||||||
uart_putc('0'+i%10);
|
cli_putc('0'+i%10);
|
||||||
uart_putstr_P(PSTR(" roundkey "));
|
cli_putstr_P(PSTR(" roundkey "));
|
||||||
uart_hexdump(ctx.key[i].ks, 16);
|
cli_hexdump(ctx.key[i].ks, 16);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -153,14 +153,14 @@ void testrun_testkey_aes256(void){
|
||||||
uint8_t i;
|
uint8_t i;
|
||||||
memset(&ctx, 0, sizeof(aes256_ctx_t));
|
memset(&ctx, 0, sizeof(aes256_ctx_t));
|
||||||
aes256_init(key, &ctx);
|
aes256_init(key, &ctx);
|
||||||
uart_putstr_P(PSTR("\r\n\r\n keyschedule test (FIPS 197):\r\n key: "));
|
cli_putstr_P(PSTR("\r\n\r\n keyschedule test (FIPS 197):\r\n key: "));
|
||||||
uart_hexdump(key, 32);
|
cli_hexdump(key, 32);
|
||||||
for(i=0; i<15; ++i){
|
for(i=0; i<15; ++i){
|
||||||
uart_putstr_P(PSTR("\r\n index: "));
|
cli_putstr_P(PSTR("\r\n index: "));
|
||||||
uart_putc('0'+i/10);
|
cli_putc('0'+i/10);
|
||||||
uart_putc('0'+i%10);
|
cli_putc('0'+i%10);
|
||||||
uart_putstr_P(PSTR(" roundkey "));
|
cli_putstr_P(PSTR(" roundkey "));
|
||||||
uart_hexdump(ctx.key[i].ks, 16);
|
cli_hexdump(ctx.key[i].ks, 16);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -186,27 +186,27 @@ void testrun_performance_aes128(void){
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
aes128_init(key, &ctx);
|
aes128_init(key, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
cli_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
aes128_enc(data, &ctx);
|
aes128_enc(data, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tencrypt time: "));
|
cli_putstr_P(PSTR("\r\n\tencrypt time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
aes128_dec(data, &ctx);
|
aes128_dec(data, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tdecrypt time: "));
|
cli_putstr_P(PSTR("\r\n\tdecrypt time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n"));
|
cli_putstr_P(PSTR("\r\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -225,27 +225,27 @@ void testrun_performance_aes192(void){
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
aes192_init(key, &ctx);
|
aes192_init(key, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
cli_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
aes192_enc(data, &ctx);
|
aes192_enc(data, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tencrypt time: "));
|
cli_putstr_P(PSTR("\r\n\tencrypt time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
aes192_dec(data, &ctx);
|
aes192_dec(data, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tdecrypt time: "));
|
cli_putstr_P(PSTR("\r\n\tdecrypt time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n"));
|
cli_putstr_P(PSTR("\r\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -264,36 +264,36 @@ void testrun_performance_aes256(void){
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
aes256_init(key, &ctx);
|
aes256_init(key, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
cli_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
aes256_enc(data, &ctx);
|
aes256_enc(data, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tencrypt time: "));
|
cli_putstr_P(PSTR("\r\n\tencrypt time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
aes256_dec(data, &ctx);
|
aes256_dec(data, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tdecrypt time: "));
|
cli_putstr_P(PSTR("\r\n\tdecrypt time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n"));
|
cli_putstr_P(PSTR("\r\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void testrun_performance_aes(void){
|
void testrun_performance_aes(void){
|
||||||
uart_putstr_P(PSTR("\r\n -=AES Performance Test=-\r\n"));
|
cli_putstr_P(PSTR("\r\n -=AES Performance Test=-\r\n"));
|
||||||
uart_putstr_P(PSTR("\r\n AES-128\r\n"));
|
cli_putstr_P(PSTR("\r\n AES-128\r\n"));
|
||||||
testrun_performance_aes128();
|
testrun_performance_aes128();
|
||||||
uart_putstr_P(PSTR("\r\n AES-192\r\n"));
|
cli_putstr_P(PSTR("\r\n AES-192\r\n"));
|
||||||
testrun_performance_aes192();
|
testrun_performance_aes192();
|
||||||
uart_putstr_P(PSTR("\r\n AES-256\r\n"));
|
cli_putstr_P(PSTR("\r\n AES-256\r\n"));
|
||||||
testrun_performance_aes256();
|
testrun_performance_aes256();
|
||||||
}
|
}
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
@ -318,13 +318,13 @@ cmdlist_entry_t cmdlist[] PROGMEM = {
|
||||||
|
|
||||||
int main (void){
|
int main (void){
|
||||||
DEBUG_INIT();
|
DEBUG_INIT();
|
||||||
uart_putstr("\r\n");
|
|
||||||
cli_rx = uart_getc;
|
cli_rx = uart_getc;
|
||||||
cli_tx = uart_putc;
|
cli_tx = uart_putc;
|
||||||
for(;;){
|
for(;;){
|
||||||
uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
cli_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
||||||
uart_putstr(algo_name);
|
cli_putstr(algo_name);
|
||||||
uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
cli_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
||||||
cmd_interface(cmdlist);
|
cmd_interface(cmdlist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,18 +72,18 @@ void testrun_performance_arcfour(void){
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
arcfour_init(key, 16, &ctx);
|
arcfour_init(key, 16, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
cli_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
arcfour_gen(&ctx);
|
arcfour_gen(&ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tencrypt time: "));
|
cli_putstr_P(PSTR("\r\n\tencrypt time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n"));
|
cli_putstr_P(PSTR("\r\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -106,13 +106,13 @@ cmdlist_entry_t cmdlist[] PROGMEM = {
|
||||||
|
|
||||||
int main (void){
|
int main (void){
|
||||||
DEBUG_INIT();
|
DEBUG_INIT();
|
||||||
uart_putstr("\r\n");
|
|
||||||
cli_rx = uart_getc;
|
cli_rx = uart_getc;
|
||||||
cli_tx = uart_putc;
|
cli_tx = uart_putc;
|
||||||
for(;;){
|
for(;;){
|
||||||
uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
cli_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
||||||
uart_putstr(algo_name);
|
cli_putstr(algo_name);
|
||||||
uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
cli_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
||||||
cmd_interface(cmdlist);
|
cmd_interface(cmdlist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,27 +75,27 @@ void test_performance_camellia(void){
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
camellia128_init(key, &ctx);
|
camellia128_init(key, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
cli_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
camellia128_enc(data, &ctx);
|
camellia128_enc(data, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tencrypt time: "));
|
cli_putstr_P(PSTR("\r\n\tencrypt time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
camellia128_dec(data, &ctx);
|
camellia128_dec(data, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tdecrypt time: "));
|
cli_putstr_P(PSTR("\r\n\tdecrypt time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n"));
|
cli_putstr_P(PSTR("\r\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -124,16 +124,16 @@ void testrun_camellia(void){
|
||||||
|
|
||||||
camellia128_ctx_t ctx;
|
camellia128_ctx_t ctx;
|
||||||
camellia128_init(key, &ctx);
|
camellia128_init(key, &ctx);
|
||||||
uart_putstr_P(PSTR("\r\n key: "));
|
cli_putstr_P(PSTR("\r\n key: "));
|
||||||
uart_hexdump(data, 16);
|
cli_hexdump(data, 16);
|
||||||
uart_putstr_P(PSTR("\r\n plaintext: "));
|
cli_putstr_P(PSTR("\r\n plaintext: "));
|
||||||
uart_hexdump(data, 16);
|
cli_hexdump(data, 16);
|
||||||
camellia128_enc(data, &ctx);
|
camellia128_enc(data, &ctx);
|
||||||
uart_putstr_P(PSTR("\r\n ciphertext: "));
|
cli_putstr_P(PSTR("\r\n ciphertext: "));
|
||||||
uart_hexdump(data, 16);
|
cli_hexdump(data, 16);
|
||||||
camellia128_dec(data, &ctx);
|
camellia128_dec(data, &ctx);
|
||||||
uart_putstr_P(PSTR("\r\n decrypted: "));
|
cli_putstr_P(PSTR("\r\n decrypted: "));
|
||||||
uart_hexdump(data, 16);
|
cli_hexdump(data, 16);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -157,13 +157,13 @@ cmdlist_entry_t cmdlist[] PROGMEM = {
|
||||||
|
|
||||||
int main (void){
|
int main (void){
|
||||||
DEBUG_INIT();
|
DEBUG_INIT();
|
||||||
uart_putstr("\r\n");
|
|
||||||
cli_rx = uart_getc;
|
cli_rx = uart_getc;
|
||||||
cli_tx = uart_putc;
|
cli_tx = uart_putc;
|
||||||
for(;;){
|
for(;;){
|
||||||
uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
cli_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
||||||
uart_putstr(algo_name);
|
cli_putstr(algo_name);
|
||||||
uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
cli_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
||||||
cmd_interface(cmdlist);
|
cmd_interface(cmdlist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,18 +59,18 @@ void testrun_nessie_cast5(void){
|
||||||
|
|
||||||
void cast5_ctx_dump(cast5_ctx_t *s){
|
void cast5_ctx_dump(cast5_ctx_t *s){
|
||||||
uint8_t i;
|
uint8_t i;
|
||||||
uart_putstr("\r\n==== cast5_ctx_dump ====\r\n shortkey: ");
|
cli_putstr("\r\n==== cast5_ctx_dump ====\r\n shortkey: ");
|
||||||
uart_putstr(s->shortkey?"yes":"no");
|
cli_putstr(s->shortkey?"yes":"no");
|
||||||
for(i=0;i<16;++i){
|
for(i=0;i<16;++i){
|
||||||
uint8_t r;
|
uint8_t r;
|
||||||
uart_putstr("\r\n Km"); uart_hexdump(&i, 1); uart_putc(':');
|
cli_putstr("\r\n Km"); cli_hexdump(&i, 1); cli_putc(':');
|
||||||
uart_hexdump(&(s->mask[i]), 4);
|
cli_hexdump(&(s->mask[i]), 4);
|
||||||
uart_putstr("\r\n Kr"); uart_hexdump(&i, 1); uart_putc(':');
|
cli_putstr("\r\n Kr"); cli_hexdump(&i, 1); cli_putc(':');
|
||||||
r = (s->rotl[i/2]);
|
r = (s->rotl[i/2]);
|
||||||
if (i&0x01) r >>= 4;
|
if (i&0x01) r >>= 4;
|
||||||
r &= 0xf;
|
r &= 0xf;
|
||||||
r += (s->roth[i>>3]&(1<<(i&0x7)))?0x10:0x00;
|
r += (s->roth[i>>3]&(1<<(i&0x7)))?0x10:0x00;
|
||||||
uart_hexdump(&r, 1);
|
cli_hexdump(&r, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -78,32 +78,32 @@ void cast5_ctx_dump(cast5_ctx_t *s){
|
||||||
void test_encrypt(uint8_t *block, uint8_t *key, uint8_t keylength, bool print){
|
void test_encrypt(uint8_t *block, uint8_t *key, uint8_t keylength, bool print){
|
||||||
cast5_ctx_t s;
|
cast5_ctx_t s;
|
||||||
if (print){
|
if (print){
|
||||||
uart_putstr("\r\nCAST5:\r\n key:\t");
|
cli_putstr("\r\nCAST5:\r\n key:\t");
|
||||||
uart_hexdump(key, keylength/8);
|
cli_hexdump(key, keylength/8);
|
||||||
uart_putstr("\r\n plaintext:\t");
|
cli_putstr("\r\n plaintext:\t");
|
||||||
uart_hexdump(block, 8);
|
cli_hexdump(block, 8);
|
||||||
}
|
}
|
||||||
cast5_init(key, keylength, &s);
|
cast5_init(key, keylength, &s);
|
||||||
cast5_enc(block, &s);
|
cast5_enc(block, &s);
|
||||||
if (print){
|
if (print){
|
||||||
uart_putstr("\r\n ciphertext:\t");
|
cli_putstr("\r\n ciphertext:\t");
|
||||||
uart_hexdump(block, 8);
|
cli_hexdump(block, 8);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void test_decrypt(uint8_t *block, uint8_t *key, uint8_t keylength, bool print){
|
void test_decrypt(uint8_t *block, uint8_t *key, uint8_t keylength, bool print){
|
||||||
cast5_ctx_t s;
|
cast5_ctx_t s;
|
||||||
if (print){
|
if (print){
|
||||||
uart_putstr("\r\nCAST5:\r\n key:\t");
|
cli_putstr("\r\nCAST5:\r\n key:\t");
|
||||||
uart_hexdump(key, keylength/8);
|
cli_hexdump(key, keylength/8);
|
||||||
uart_putstr("\r\n ciphertext:\t");
|
cli_putstr("\r\n ciphertext:\t");
|
||||||
uart_hexdump(block, 8);
|
cli_hexdump(block, 8);
|
||||||
}
|
}
|
||||||
cast5_init(key, keylength, &s);
|
cast5_init(key, keylength, &s);
|
||||||
cast5_dec(block, &s);
|
cast5_dec(block, &s);
|
||||||
if (print){
|
if (print){
|
||||||
uart_putstr("\r\n plaintext:\t");
|
cli_putstr("\r\n plaintext:\t");
|
||||||
uart_hexdump(block, 8);
|
cli_hexdump(block, 8);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -126,7 +126,7 @@ void testrun_cast5(void){
|
||||||
test_decrypt(block, key, 40, true);
|
test_decrypt(block, key, 40, true);
|
||||||
|
|
||||||
/**** long test *****/
|
/**** long test *****/
|
||||||
uart_putstr("\r\nmaintance-test");
|
cli_putstr("\r\nmaintance-test");
|
||||||
uint8_t a[16]= {0x01, 0x23, 0x45, 0x67, 0x12,
|
uint8_t a[16]= {0x01, 0x23, 0x45, 0x67, 0x12,
|
||||||
0x34, 0x56, 0x78, 0x23, 0x45,
|
0x34, 0x56, 0x78, 0x23, 0x45,
|
||||||
0x67, 0x89, 0x34, 0x56, 0x78,
|
0x67, 0x89, 0x34, 0x56, 0x78,
|
||||||
|
@ -142,12 +142,12 @@ void testrun_cast5(void){
|
||||||
test_encrypt(&(b[0]), &(a[0]), 128, false);
|
test_encrypt(&(b[0]), &(a[0]), 128, false);
|
||||||
test_encrypt(&(b[8]), &(a[0]), 128, false);
|
test_encrypt(&(b[8]), &(a[0]), 128, false);
|
||||||
if ((i&0x000000ff) == 0){
|
if ((i&0x000000ff) == 0){
|
||||||
uart_putstr("\r\n");
|
|
||||||
uart_hexdump(&i, 4);
|
cli_hexdump(&i, 4);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
uart_putstr("\r\na = "); uart_hexdump(a, 16);
|
cli_putstr("\r\na = "); cli_hexdump(a, 16);
|
||||||
uart_putstr("\r\nb = "); uart_hexdump(b, 16);
|
cli_putstr("\r\nb = "); cli_hexdump(b, 16);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -166,27 +166,27 @@ void testrun_performance_cast5(void){
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
cast5_init(key, 128, &ctx);
|
cast5_init(key, 128, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
cli_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
cast5_enc(data, &ctx);
|
cast5_enc(data, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tencrypt time: "));
|
cli_putstr_P(PSTR("\r\n\tencrypt time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
cast5_dec(data, &ctx);
|
cast5_dec(data, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tdecrypt time: "));
|
cli_putstr_P(PSTR("\r\n\tdecrypt time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n"));
|
cli_putstr_P(PSTR("\r\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
@ -208,13 +208,13 @@ cmdlist_entry_t cmdlist[] PROGMEM = {
|
||||||
|
|
||||||
int main (void){
|
int main (void){
|
||||||
DEBUG_INIT();
|
DEBUG_INIT();
|
||||||
uart_putstr("\r\n");
|
|
||||||
cli_rx = uart_getc;
|
cli_rx = uart_getc;
|
||||||
cli_tx = uart_putc;
|
cli_tx = uart_putc;
|
||||||
for(;;){
|
for(;;){
|
||||||
uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
cli_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
||||||
uart_putstr(algo_name);
|
cli_putstr(algo_name);
|
||||||
uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
cli_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
||||||
cmd_interface(cmdlist);
|
cmd_interface(cmdlist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -81,17 +81,17 @@ void testrun_performance_des(void){
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
des_enc(data, data, key);
|
des_enc(data, data, key);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tencrypt time: "));
|
cli_putstr_P(PSTR("\r\n\tencrypt time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
des_dec(data, data, key);
|
des_dec(data, data, key);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tdecrypt time: "));
|
cli_putstr_P(PSTR("\r\n\tdecrypt time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
uart_putstr_P(PSTR("\r\n"));
|
cli_putstr_P(PSTR("\r\n"));
|
||||||
}
|
}
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* main
|
* main
|
||||||
|
@ -112,13 +112,13 @@ cmdlist_entry_t cmdlist[] PROGMEM = {
|
||||||
|
|
||||||
int main (void){
|
int main (void){
|
||||||
DEBUG_INIT();
|
DEBUG_INIT();
|
||||||
uart_putstr("\r\n");
|
|
||||||
cli_rx = uart_getc;
|
cli_rx = uart_getc;
|
||||||
cli_tx = uart_putc;
|
cli_tx = uart_putc;
|
||||||
for(;;){
|
for(;;){
|
||||||
uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
cli_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
||||||
uart_putstr(algo_name);
|
cli_putstr(algo_name);
|
||||||
uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
cli_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
||||||
cmd_interface(cmdlist);
|
cmd_interface(cmdlist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,17 +47,17 @@ void testrun_entropium(void){
|
||||||
uint32_t i=0;
|
uint32_t i=0;
|
||||||
while(!uart_getc_nb(&c)){
|
while(!uart_getc_nb(&c)){
|
||||||
entropium_getRandomBlock(data);
|
entropium_getRandomBlock(data);
|
||||||
uart_putstr_P(PSTR("\r\n "));
|
cli_putstr_P(PSTR("\r\n "));
|
||||||
ultoa(i, str, 10);
|
ultoa(i, str, 10);
|
||||||
for(c=strlen(str); c<11; ++c){
|
for(c=strlen(str); c<11; ++c){
|
||||||
uart_putc(' ');
|
cli_putc(' ');
|
||||||
}
|
}
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
++i;
|
++i;
|
||||||
uart_putstr_P(PSTR(" : "));
|
cli_putstr_P(PSTR(" : "));
|
||||||
uart_hexdump(data, 32);
|
cli_hexdump(data, 32);
|
||||||
}
|
}
|
||||||
uart_putstr_P(PSTR("\r\n\r\n"));
|
cli_putstr_P(PSTR("\r\n\r\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -72,19 +72,19 @@ void testrun_performance_entropium(void){
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
entropium_addEntropy(128, data);
|
entropium_addEntropy(128, data);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tadd entropy time: "));
|
cli_putstr_P(PSTR("\r\n\tadd entropy time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
entropium_getRandomBlock(data);
|
entropium_getRandomBlock(data);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tget random time: "));
|
cli_putstr_P(PSTR("\r\n\tget random time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n"));
|
cli_putstr_P(PSTR("\r\n"));
|
||||||
}
|
}
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* main *
|
* main *
|
||||||
|
@ -106,13 +106,13 @@ cmdlist_entry_t cmdlist[] PROGMEM = {
|
||||||
|
|
||||||
int main (void){
|
int main (void){
|
||||||
DEBUG_INIT();
|
DEBUG_INIT();
|
||||||
uart_putstr("\r\n");
|
|
||||||
cli_rx = uart_getc;
|
cli_rx = uart_getc;
|
||||||
cli_tx = uart_putc;
|
cli_tx = uart_putc;
|
||||||
|
|
||||||
for(;;){
|
for(;;){
|
||||||
uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
cli_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
||||||
uart_putstr(algo_name);
|
cli_putstr(algo_name);
|
||||||
uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
cli_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
||||||
cmd_interface(cmdlist);
|
cmd_interface(cmdlist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -83,17 +83,17 @@ void testrun_std_grain(void){
|
||||||
/* 1 */
|
/* 1 */
|
||||||
memset(key, 0, 10);
|
memset(key, 0, 10);
|
||||||
memset(iv, 0, 8);
|
memset(iv, 0, 8);
|
||||||
uart_putstr_P(PSTR("\r\n=== std test ==="));
|
cli_putstr_P(PSTR("\r\n=== std test ==="));
|
||||||
uart_putstr_P(PSTR("\r\n key: "));
|
cli_putstr_P(PSTR("\r\n key: "));
|
||||||
uart_hexdump(key, 10);
|
cli_hexdump(key, 10);
|
||||||
uart_putstr_P(PSTR("\r\n iv: "));
|
cli_putstr_P(PSTR("\r\n iv: "));
|
||||||
uart_hexdump(key, 8);
|
cli_hexdump(key, 8);
|
||||||
grain_init(key, iv, &ctx);
|
grain_init(key, iv, &ctx);
|
||||||
for(i=0; i<10; ++i){
|
for(i=0; i<10; ++i){
|
||||||
out[i] = grain_getbyte_dummy(&ctx);
|
out[i] = grain_getbyte_dummy(&ctx);
|
||||||
}
|
}
|
||||||
uart_putstr_P(PSTR("\r\n out: "));
|
cli_putstr_P(PSTR("\r\n out: "));
|
||||||
uart_hexdump(out, 10);
|
cli_hexdump(out, 10);
|
||||||
|
|
||||||
/* 2 */
|
/* 2 */
|
||||||
for(i=0; i<8; ++i){
|
for(i=0; i<8; ++i){
|
||||||
|
@ -105,19 +105,19 @@ void testrun_std_grain(void){
|
||||||
for(i=0; i<8; ++i){
|
for(i=0; i<8; ++i){
|
||||||
iv[i] = i*0x22+1;
|
iv[i] = i*0x22+1;
|
||||||
}
|
}
|
||||||
uart_putstr_P(PSTR("\r\n\r\n key: "));
|
cli_putstr_P(PSTR("\r\n\r\n key: "));
|
||||||
uart_hexdump(key, 10);
|
cli_hexdump(key, 10);
|
||||||
uart_putstr_P(PSTR("\r\n iv: "));
|
cli_putstr_P(PSTR("\r\n iv: "));
|
||||||
uart_hexdump(key, 8);
|
cli_hexdump(key, 8);
|
||||||
grain_init(key, iv, &ctx);
|
grain_init(key, iv, &ctx);
|
||||||
for(i=0; i<10; ++i){
|
for(i=0; i<10; ++i){
|
||||||
out[i] = grain_getbyte_dummy(&ctx);
|
out[i] = grain_getbyte_dummy(&ctx);
|
||||||
}
|
}
|
||||||
uart_putstr_P(PSTR("\r\n out: "));
|
cli_putstr_P(PSTR("\r\n out: "));
|
||||||
uart_hexdump(out, 10);
|
cli_hexdump(out, 10);
|
||||||
|
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n\r\n"));
|
cli_putstr_P(PSTR("\r\n\r\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void testrun_performance_grain(void){
|
void testrun_performance_grain(void){
|
||||||
|
@ -135,18 +135,18 @@ void testrun_performance_grain(void){
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
grain_init(key, iv, &ctx);
|
grain_init(key, iv, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
cli_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
grain_enc(&ctx);
|
grain_enc(&ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tencrypt time: "));
|
cli_putstr_P(PSTR("\r\n\tencrypt time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n"));
|
cli_putstr_P(PSTR("\r\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
@ -168,13 +168,13 @@ cmdlist_entry_t cmdlist[] PROGMEM = {
|
||||||
|
|
||||||
int main (void){
|
int main (void){
|
||||||
DEBUG_INIT();
|
DEBUG_INIT();
|
||||||
uart_putstr("\r\n");
|
|
||||||
cli_rx = uart_getc;
|
cli_rx = uart_getc;
|
||||||
cli_tx = uart_putc;
|
cli_tx = uart_putc;
|
||||||
for(;;){
|
for(;;){
|
||||||
uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
cli_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
||||||
uart_putstr(algo_name);
|
cli_putstr(algo_name);
|
||||||
uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
cli_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
||||||
cmd_interface(cmdlist);
|
cmd_interface(cmdlist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,13 +88,13 @@ cmdlist_entry_t cmdlist[] PROGMEM = {
|
||||||
|
|
||||||
int main (void){
|
int main (void){
|
||||||
DEBUG_INIT();
|
DEBUG_INIT();
|
||||||
uart_putstr("\r\n");
|
|
||||||
cli_rx = uart_getc;
|
cli_rx = uart_getc;
|
||||||
cli_tx = uart_putc;
|
cli_tx = uart_putc;
|
||||||
for(;;){
|
for(;;){
|
||||||
uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
cli_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
||||||
uart_putstr(algo_name);
|
cli_putstr(algo_name);
|
||||||
uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
cli_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
||||||
cmd_interface(cmdlist);
|
cmd_interface(cmdlist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,13 +88,13 @@ cmdlist_entry_t cmdlist[] PROGMEM = {
|
||||||
|
|
||||||
int main (void){
|
int main (void){
|
||||||
DEBUG_INIT();
|
DEBUG_INIT();
|
||||||
uart_putstr("\r\n");
|
|
||||||
cli_rx = uart_getc;
|
cli_rx = uart_getc;
|
||||||
cli_tx = uart_putc;
|
cli_tx = uart_putc;
|
||||||
for(;;){
|
for(;;){
|
||||||
uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
cli_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
||||||
uart_putstr(algo_name);
|
cli_putstr(algo_name);
|
||||||
uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
cli_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
||||||
cmd_interface(cmdlist);
|
cmd_interface(cmdlist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -95,7 +95,7 @@ void testrun_md5(void){
|
||||||
"12345678901234567890123456789012345678901234567890123456789012345678901234567890"};
|
"12345678901234567890123456789012345678901234567890123456789012345678901234567890"};
|
||||||
uint16_t i;
|
uint16_t i;
|
||||||
|
|
||||||
uart_putstr("\r\n=== MD5 test suit ===");
|
cli_putstr("\r\n=== MD5 test suit ===");
|
||||||
for(i=0; i<7; ++i){
|
for(i=0; i<7; ++i){
|
||||||
cli_putstr("\r\n MD5 (\"");
|
cli_putstr("\r\n MD5 (\"");
|
||||||
cli_putstr(testv[i]);
|
cli_putstr(testv[i]);
|
||||||
|
@ -131,27 +131,27 @@ void testrun_performance_md5(void){
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
md5_init(&ctx);
|
md5_init(&ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
cli_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
md5_nextBlock(&ctx, data);
|
md5_nextBlock(&ctx, data);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tone-block time: "));
|
cli_putstr_P(PSTR("\r\n\tone-block time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
md5_lastBlock(&ctx, data, 0);
|
md5_lastBlock(&ctx, data, 0);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tlast block time: "));
|
cli_putstr_P(PSTR("\r\n\tlast block time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n"));
|
cli_putstr_P(PSTR("\r\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -174,13 +174,13 @@ cmdlist_entry_t cmdlist[] PROGMEM = {
|
||||||
|
|
||||||
int main (void){
|
int main (void){
|
||||||
DEBUG_INIT();
|
DEBUG_INIT();
|
||||||
uart_putstr("\r\n");
|
|
||||||
cli_rx = uart_getc;
|
cli_rx = uart_getc;
|
||||||
cli_tx = uart_putc;
|
cli_tx = uart_putc;
|
||||||
for(;;){
|
for(;;){
|
||||||
uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
cli_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
||||||
uart_putstr(algo_name);
|
cli_putstr(algo_name);
|
||||||
uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
cli_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
||||||
cmd_interface(cmdlist);
|
cmd_interface(cmdlist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -128,13 +128,13 @@ cmdlist_entry_t cmdlist[] PROGMEM = {
|
||||||
|
|
||||||
int main (void){
|
int main (void){
|
||||||
DEBUG_INIT();
|
DEBUG_INIT();
|
||||||
uart_putstr("\r\n");
|
|
||||||
cli_rx = uart_getc;
|
cli_rx = uart_getc;
|
||||||
cli_tx = uart_putc;
|
cli_tx = uart_putc;
|
||||||
for(;;){
|
for(;;){
|
||||||
uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
cli_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
||||||
uart_putstr(algo_name);
|
cli_putstr(algo_name);
|
||||||
uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
cli_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
||||||
cmd_interface(cmdlist);
|
cmd_interface(cmdlist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
/*
|
/*
|
||||||
* serpent test-suit
|
* noekeon test-suit
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -87,42 +87,42 @@ void testrun_nessie_noekeon(void){
|
||||||
|
|
||||||
|
|
||||||
void testrun_stdtest_rundirect(void* data, void* key){
|
void testrun_stdtest_rundirect(void* data, void* key){
|
||||||
uart_putstr_P(PSTR("\r\n "));
|
cli_putstr_P(PSTR("\r\n "));
|
||||||
uart_putstr_P(PSTR("k = "));
|
cli_putstr_P(PSTR("k = "));
|
||||||
uart_hexdump(key,16);
|
cli_hexdump(key,16);
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n "));
|
cli_putstr_P(PSTR("\r\n "));
|
||||||
uart_putstr_P(PSTR("a = "));
|
cli_putstr_P(PSTR("a = "));
|
||||||
uart_hexdump(data,16);
|
cli_hexdump(data,16);
|
||||||
|
|
||||||
noekeon_enc(data, key);
|
noekeon_enc(data, key);
|
||||||
uart_putstr_P(PSTR("\r\nafter NESSIEencrypt, b = "));
|
cli_putstr_P(PSTR("\r\nafter NESSIEencrypt, b = "));
|
||||||
uart_hexdump(data,16);
|
cli_hexdump(data,16);
|
||||||
|
|
||||||
noekeon_dec(data, key);
|
noekeon_dec(data, key);
|
||||||
uart_putstr_P(PSTR("\r\nafter NESSIEdecrypt, a?= "));
|
cli_putstr_P(PSTR("\r\nafter NESSIEdecrypt, a?= "));
|
||||||
uart_hexdump(data,16);
|
cli_hexdump(data,16);
|
||||||
uart_putstr_P(PSTR("\r\n"));
|
cli_putstr_P(PSTR("\r\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void testrun_stdtest_runindirect(void* data, void* key){
|
void testrun_stdtest_runindirect(void* data, void* key){
|
||||||
noekeon_ctx_t ctx;
|
noekeon_ctx_t ctx;
|
||||||
uart_putstr_P(PSTR("\r\n "));
|
cli_putstr_P(PSTR("\r\n "));
|
||||||
uart_putstr_P(PSTR("k = "));
|
cli_putstr_P(PSTR("k = "));
|
||||||
uart_hexdump(key,16);
|
cli_hexdump(key,16);
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n "));
|
cli_putstr_P(PSTR("\r\n "));
|
||||||
uart_putstr_P(PSTR("a = "));
|
cli_putstr_P(PSTR("a = "));
|
||||||
uart_hexdump(data,16);
|
cli_hexdump(data,16);
|
||||||
noekeon_init(key, &ctx);
|
noekeon_init(key, &ctx);
|
||||||
noekeon_enc(data, &ctx);
|
noekeon_enc(data, &ctx);
|
||||||
uart_putstr_P(PSTR("\r\nafter NESSIEencrypt, b = "));
|
cli_putstr_P(PSTR("\r\nafter NESSIEencrypt, b = "));
|
||||||
uart_hexdump(data,16);
|
cli_hexdump(data,16);
|
||||||
|
|
||||||
noekeon_dec(data, &ctx);
|
noekeon_dec(data, &ctx);
|
||||||
uart_putstr_P(PSTR("\r\nafter NESSIEdecrypt, a?= "));
|
cli_putstr_P(PSTR("\r\nafter NESSIEdecrypt, a?= "));
|
||||||
uart_hexdump(data,16);
|
cli_hexdump(data,16);
|
||||||
uart_putstr_P(PSTR("\r\n"));
|
cli_putstr_P(PSTR("\r\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void testrun_stdtest_noekeon(void){
|
void testrun_stdtest_noekeon(void){
|
||||||
|
@ -130,7 +130,7 @@ void testrun_stdtest_noekeon(void){
|
||||||
uint8_t key3[16];
|
uint8_t key3[16];
|
||||||
noekeon_ctx_t ctx;
|
noekeon_ctx_t ctx;
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\nTest vectors for block cipher Noekeon in Indirect-Key Mode:\r\n"));
|
cli_putstr_P(PSTR("\r\nTest vectors for block cipher Noekeon in Indirect-Key Mode:\r\n"));
|
||||||
|
|
||||||
memset(key, 0, 16);
|
memset(key, 0, 16);
|
||||||
memset(data, 0, 16);
|
memset(data, 0, 16);
|
||||||
|
@ -151,7 +151,7 @@ void testrun_stdtest_noekeon(void){
|
||||||
noekeon_enc(data, &ctx);
|
noekeon_enc(data, &ctx);
|
||||||
testrun_stdtest_runindirect(data, key3);
|
testrun_stdtest_runindirect(data, key3);
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\nTest vectors for block cipher Noekeon in Direct-Key Mode:\r\n"));
|
cli_putstr_P(PSTR("\r\nTest vectors for block cipher Noekeon in Direct-Key Mode:\r\n"));
|
||||||
|
|
||||||
memset(key, 0, 16);
|
memset(key, 0, 16);
|
||||||
memset(data, 0, 16);
|
memset(data, 0, 16);
|
||||||
|
@ -187,25 +187,25 @@ void testrun_performance_noekeon(void){
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
noekeon_init(key, &ctx);
|
noekeon_init(key, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
cli_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
noekeon_enc(data, &ctx);
|
noekeon_enc(data, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tencrypt time: "));
|
cli_putstr_P(PSTR("\r\n\tencrypt time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
noekeon_dec(data, &ctx);
|
noekeon_dec(data, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tdecrypt time: "));
|
cli_putstr_P(PSTR("\r\n\tdecrypt time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n"));
|
cli_putstr_P(PSTR("\r\n"));
|
||||||
}
|
}
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* main *
|
* main *
|
||||||
|
@ -230,13 +230,13 @@ cmdlist_entry_t cmdlist[] PROGMEM = {
|
||||||
|
|
||||||
int main (void){
|
int main (void){
|
||||||
DEBUG_INIT();
|
DEBUG_INIT();
|
||||||
uart_putstr("\r\n");
|
|
||||||
cli_rx = uart_getc;
|
cli_rx = uart_getc;
|
||||||
cli_tx = uart_putc;
|
cli_tx = uart_putc;
|
||||||
for(;;){
|
for(;;){
|
||||||
uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
cli_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
||||||
uart_putstr(algo_name);
|
cli_putstr(algo_name);
|
||||||
uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
cli_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
||||||
cmd_interface(cmdlist);
|
cmd_interface(cmdlist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,16 +45,16 @@ char* algo_name = "OMAC-Noekeon";
|
||||||
|
|
||||||
void test_mac(void* key, void* data, uint16_t datalength_b){
|
void test_mac(void* key, void* data, uint16_t datalength_b){
|
||||||
uint8_t mac[16];
|
uint8_t mac[16];
|
||||||
uart_putstr_P(PSTR("\r\n-----------\r\n msg length (bit): 0x"));
|
cli_putstr_P(PSTR("\r\n-----------\r\n msg length (bit): 0x"));
|
||||||
uart_hexdump(((uint8_t*)&datalength_b)+1, 1);
|
cli_hexdump(((uint8_t*)&datalength_b)+1, 1);
|
||||||
uart_hexdump(((uint8_t*)&datalength_b)+0, 1);
|
cli_hexdump(((uint8_t*)&datalength_b)+0, 1);
|
||||||
uart_putstr_P(PSTR("\r\n msg: "));
|
cli_putstr_P(PSTR("\r\n msg: "));
|
||||||
uart_hexdump(data, (datalength_b+7)/8);
|
cli_hexdump(data, (datalength_b+7)/8);
|
||||||
uart_putstr_P(PSTR("\r\n key: "));
|
cli_putstr_P(PSTR("\r\n key: "));
|
||||||
uart_hexdump(key, 16);
|
cli_hexdump(key, 16);
|
||||||
omac_noekeon(mac, data, datalength_b, key, (uint8_t)-1);
|
omac_noekeon(mac, data, datalength_b, key, (uint8_t)-1);
|
||||||
uart_putstr_P(PSTR("\r\n mac: "));
|
cli_putstr_P(PSTR("\r\n mac: "));
|
||||||
uart_hexdump(mac, 16);
|
cli_hexdump(mac, 16);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -125,27 +125,27 @@ void testrun_performance_omac_noekeon(void){
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
omac_noekeon_init(&ctx);
|
omac_noekeon_init(&ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
cli_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
omac_noekeon_next(data, key, &ctx);
|
omac_noekeon_next(data, key, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tone-block time: "));
|
cli_putstr_P(PSTR("\r\n\tone-block time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
omac_noekeon_last(data, 128, key, &ctx);
|
omac_noekeon_last(data, 128, key, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tlast block time: "));
|
cli_putstr_P(PSTR("\r\n\tlast block time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n"));
|
cli_putstr_P(PSTR("\r\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
@ -167,13 +167,13 @@ cmdlist_entry_t cmdlist[] PROGMEM = {
|
||||||
|
|
||||||
int main (void){
|
int main (void){
|
||||||
DEBUG_INIT();
|
DEBUG_INIT();
|
||||||
uart_putstr("\r\n");
|
|
||||||
cli_rx = uart_getc;
|
cli_rx = uart_getc;
|
||||||
cli_tx = uart_putc;
|
cli_tx = uart_putc;
|
||||||
for(;;){
|
for(;;){
|
||||||
uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
cli_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
||||||
uart_putstr(algo_name);
|
cli_putstr(algo_name);
|
||||||
uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
cli_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
||||||
cmd_interface(cmdlist);
|
cmd_interface(cmdlist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,23 +58,23 @@ void testrun_nessie_present(void){
|
||||||
|
|
||||||
void testrun_selfenc(uint8_t* key, uint8_t* buffer){
|
void testrun_selfenc(uint8_t* key, uint8_t* buffer){
|
||||||
present_ctx_t ctx;
|
present_ctx_t ctx;
|
||||||
uart_putstr_P(PSTR("\r\nkey : "));
|
cli_putstr_P(PSTR("\r\nkey : "));
|
||||||
uart_hexdump(key, 10);
|
cli_hexdump(key, 10);
|
||||||
uart_putstr_P(PSTR("\r\nplain : "));
|
cli_putstr_P(PSTR("\r\nplain : "));
|
||||||
uart_hexdump(buffer, 8);
|
cli_hexdump(buffer, 8);
|
||||||
present_init(key, 80, &ctx);
|
present_init(key, 80, &ctx);
|
||||||
present_enc(buffer, &ctx);
|
present_enc(buffer, &ctx);
|
||||||
uart_putstr_P(PSTR("\r\ncipher: "));
|
cli_putstr_P(PSTR("\r\ncipher: "));
|
||||||
uart_hexdump(buffer, 8);
|
cli_hexdump(buffer, 8);
|
||||||
present_dec(buffer, &ctx);
|
present_dec(buffer, &ctx);
|
||||||
uart_putstr_P(PSTR("\r\nplain : "));
|
cli_putstr_P(PSTR("\r\nplain : "));
|
||||||
uart_hexdump(buffer, 8);
|
cli_hexdump(buffer, 8);
|
||||||
uart_putstr_P(PSTR("\r\n"));
|
cli_putstr_P(PSTR("\r\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void testrun_self_present(void){
|
void testrun_self_present(void){
|
||||||
uint8_t buffer[8], key[10];
|
uint8_t buffer[8], key[10];
|
||||||
uart_putstr_P(PSTR("\r\n\r\n=== Testvectors from the paper ===\r\n"));
|
cli_putstr_P(PSTR("\r\n\r\n=== Testvectors from the paper ===\r\n"));
|
||||||
|
|
||||||
memset(buffer, 0, 8);
|
memset(buffer, 0, 8);
|
||||||
memset(key, 0, 10);
|
memset(key, 0, 10);
|
||||||
|
@ -120,7 +120,7 @@ void testrun_performance_present(void){
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
print_time_P(PSTR("\tdecrypt time: "), t);
|
print_time_P(PSTR("\tdecrypt time: "), t);
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n"));
|
cli_putstr_P(PSTR("\r\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
@ -142,13 +142,13 @@ cmdlist_entry_t cmdlist[] PROGMEM = {
|
||||||
|
|
||||||
int main (void){
|
int main (void){
|
||||||
DEBUG_INIT();
|
DEBUG_INIT();
|
||||||
uart_putstr("\r\n");
|
|
||||||
cli_rx = uart_getc;
|
cli_rx = uart_getc;
|
||||||
cli_tx = uart_putc;
|
cli_tx = uart_putc;
|
||||||
for(;;){
|
for(;;){
|
||||||
uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
cli_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
||||||
uart_putstr(algo_name);
|
cli_putstr(algo_name);
|
||||||
uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
cli_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
||||||
cmd_interface(cmdlist);
|
cmd_interface(cmdlist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,31 +75,31 @@ void testrun_performance_rc5(void){
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
rc5_init(key, 128, RC5_ROUNDS, &ctx);
|
rc5_init(key, 128, RC5_ROUNDS, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
cli_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
rc5_enc(data, &ctx);
|
rc5_enc(data, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tencrypt time: "));
|
cli_putstr_P(PSTR("\r\n\tencrypt time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
rc5_dec(data, &ctx);
|
rc5_dec(data, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tdecrypt time: "));
|
cli_putstr_P(PSTR("\r\n\tdecrypt time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
rc5_free(&ctx);
|
rc5_free(&ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tfree time: "));
|
cli_putstr_P(PSTR("\r\n\tfree time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
uart_putstr_P(PSTR("\r\n"));
|
cli_putstr_P(PSTR("\r\n"));
|
||||||
}
|
}
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* main *
|
* main *
|
||||||
|
@ -120,13 +120,13 @@ cmdlist_entry_t cmdlist[] PROGMEM = {
|
||||||
|
|
||||||
int main (void){
|
int main (void){
|
||||||
DEBUG_INIT();
|
DEBUG_INIT();
|
||||||
uart_putstr("\r\n");
|
|
||||||
cli_rx = uart_getc;
|
cli_rx = uart_getc;
|
||||||
cli_tx = uart_putc;
|
cli_tx = uart_putc;
|
||||||
for(;;){
|
for(;;){
|
||||||
uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
cli_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
||||||
uart_putstr(algo_name);
|
cli_putstr(algo_name);
|
||||||
uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
cli_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
||||||
cmd_interface(cmdlist);
|
cmd_interface(cmdlist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -82,31 +82,31 @@ void testrun_performance_rc6(void){
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
rc6_init(key, 128, &ctx);
|
rc6_init(key, 128, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
cli_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
rc6_enc(data, &ctx);
|
rc6_enc(data, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tencrypt time: "));
|
cli_putstr_P(PSTR("\r\n\tencrypt time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
rc6_dec(data, &ctx);
|
rc6_dec(data, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tdecrypt time: "));
|
cli_putstr_P(PSTR("\r\n\tdecrypt time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
rc6_free(&ctx);
|
rc6_free(&ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tfree time: "));
|
cli_putstr_P(PSTR("\r\n\tfree time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
uart_putstr_P(PSTR("\r\n"));
|
cli_putstr_P(PSTR("\r\n"));
|
||||||
}
|
}
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* main *
|
* main *
|
||||||
|
@ -127,13 +127,13 @@ cmdlist_entry_t cmdlist[] PROGMEM = {
|
||||||
|
|
||||||
int main (void){
|
int main (void){
|
||||||
DEBUG_INIT();
|
DEBUG_INIT();
|
||||||
uart_putstr("\r\n");
|
|
||||||
cli_rx = uart_getc;
|
cli_rx = uart_getc;
|
||||||
cli_tx = uart_putc;
|
cli_tx = uart_putc;
|
||||||
for(;;){
|
for(;;){
|
||||||
uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
cli_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
||||||
uart_putstr(algo_name);
|
cli_putstr(algo_name);
|
||||||
uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
cli_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
||||||
cmd_interface(cmdlist);
|
cmd_interface(cmdlist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,27 +78,27 @@ void testrun_performance_seed(void){
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
seed_init(key, &ctx);
|
seed_init(key, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
cli_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
seed_enc(data, &ctx);
|
seed_enc(data, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tencrypt time: "));
|
cli_putstr_P(PSTR("\r\n\tencrypt time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
seed_dec(data, &ctx);
|
seed_dec(data, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tdecrypt time: "));
|
cli_putstr_P(PSTR("\r\n\tdecrypt time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n"));
|
cli_putstr_P(PSTR("\r\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
@ -107,26 +107,26 @@ void testrun_performance_seed(void){
|
||||||
|
|
||||||
void testencrypt(uint8_t* block, uint8_t* key){
|
void testencrypt(uint8_t* block, uint8_t* key){
|
||||||
seed_ctx_t ctx;
|
seed_ctx_t ctx;
|
||||||
uart_putstr("\r\n==testy-encrypt==\r\n key: ");
|
cli_putstr("\r\n==testy-encrypt==\r\n key: ");
|
||||||
uart_hexdump(key,16);
|
cli_hexdump(key,16);
|
||||||
seed_init(key, &ctx);
|
seed_init(key, &ctx);
|
||||||
uart_putstr("\r\n plain: ");
|
cli_putstr("\r\n plain: ");
|
||||||
uart_hexdump(block,16);
|
cli_hexdump(block,16);
|
||||||
seed_enc(block, &ctx);
|
seed_enc(block, &ctx);
|
||||||
uart_putstr("\r\n crypt: ");
|
cli_putstr("\r\n crypt: ");
|
||||||
uart_hexdump(block,16);
|
cli_hexdump(block,16);
|
||||||
}
|
}
|
||||||
|
|
||||||
void testdecrypt(uint8_t* block, uint8_t* key){
|
void testdecrypt(uint8_t* block, uint8_t* key){
|
||||||
seed_ctx_t ctx;
|
seed_ctx_t ctx;
|
||||||
uart_putstr("\r\n==testy-decrypt==\r\n key: ");
|
cli_putstr("\r\n==testy-decrypt==\r\n key: ");
|
||||||
uart_hexdump(key,16);
|
cli_hexdump(key,16);
|
||||||
seed_init(key, &ctx);
|
seed_init(key, &ctx);
|
||||||
uart_putstr("\r\n crypt: ");
|
cli_putstr("\r\n crypt: ");
|
||||||
uart_hexdump(block,16);
|
cli_hexdump(block,16);
|
||||||
seed_dec(block, &ctx);
|
seed_dec(block, &ctx);
|
||||||
uart_putstr("\r\n plain: ");
|
cli_putstr("\r\n plain: ");
|
||||||
uart_hexdump(block,16);
|
cli_hexdump(block,16);
|
||||||
}
|
}
|
||||||
|
|
||||||
void testrun_seed(void){
|
void testrun_seed(void){
|
||||||
|
@ -178,13 +178,13 @@ cmdlist_entry_t cmdlist[] PROGMEM = {
|
||||||
|
|
||||||
int main (void){
|
int main (void){
|
||||||
DEBUG_INIT();
|
DEBUG_INIT();
|
||||||
uart_putstr("\r\n");
|
|
||||||
cli_rx = uart_getc;
|
cli_rx = uart_getc;
|
||||||
cli_tx = uart_putc;
|
cli_tx = uart_putc;
|
||||||
for(;;){
|
for(;;){
|
||||||
uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
cli_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
||||||
uart_putstr(algo_name);
|
cli_putstr(algo_name);
|
||||||
uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
cli_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
||||||
cmd_interface(cmdlist);
|
cmd_interface(cmdlist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -69,10 +69,10 @@ void testrun_test_serpent(void){
|
||||||
memset(key, 0, 16);
|
memset(key, 0, 16);
|
||||||
serpent_init(key, 128, &ctx);
|
serpent_init(key, 128, &ctx);
|
||||||
for(i=0; i<33; ++i){
|
for(i=0; i<33; ++i){
|
||||||
uart_putstr_P(PSTR("\r\n subkekey "));
|
cli_putstr_P(PSTR("\r\n subkekey "));
|
||||||
uart_hexdump(&i, 1);
|
cli_hexdump(&i, 1);
|
||||||
uart_putstr_P(PSTR(" : "));
|
cli_putstr_P(PSTR(" : "));
|
||||||
uart_hexdump(ctx.k[i], 16);
|
cli_hexdump(ctx.k[i], 16);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -91,27 +91,27 @@ void testrun_performance_serpent(void){
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
serpent_init(key, 0, &ctx);
|
serpent_init(key, 0, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
cli_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
serpent_enc(data, &ctx);
|
serpent_enc(data, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tencrypt time: "));
|
cli_putstr_P(PSTR("\r\n\tencrypt time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
serpent_dec(data, &ctx);
|
serpent_dec(data, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tdecrypt time: "));
|
cli_putstr_P(PSTR("\r\n\tdecrypt time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n"));
|
cli_putstr_P(PSTR("\r\n"));
|
||||||
}
|
}
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* main *
|
* main *
|
||||||
|
@ -132,13 +132,13 @@ cmdlist_entry_t cmdlist[] PROGMEM = {
|
||||||
|
|
||||||
int main (void){
|
int main (void){
|
||||||
DEBUG_INIT();
|
DEBUG_INIT();
|
||||||
uart_putstr("\r\n");
|
|
||||||
cli_rx = uart_getc;
|
cli_rx = uart_getc;
|
||||||
cli_tx = uart_putc;
|
cli_tx = uart_putc;
|
||||||
for(;;){
|
for(;;){
|
||||||
uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
cli_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
||||||
uart_putstr(algo_name);
|
cli_putstr(algo_name);
|
||||||
uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
cli_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
||||||
cmd_interface(cmdlist);
|
cmd_interface(cmdlist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,25 +70,25 @@ void testrun_nessie_sha1(void){
|
||||||
|
|
||||||
void sha1_ctx_dump(sha1_ctx_t *s){
|
void sha1_ctx_dump(sha1_ctx_t *s){
|
||||||
uint8_t i;
|
uint8_t i;
|
||||||
uart_putstr("\r\n==== sha1_ctx_dump ====");
|
cli_putstr("\r\n==== sha1_ctx_dump ====");
|
||||||
for(i=0;i<5;++i){
|
for(i=0;i<5;++i){
|
||||||
uart_putstr("\r\na["); uart_hexdump(&i, 1); uart_putstr("]: ");
|
cli_putstr("\r\na["); cli_hexdump(&i, 1); cli_putstr("]: ");
|
||||||
uart_hexdump(&(s->h[i]), 4);
|
cli_hexdump(&(s->h[i]), 4);
|
||||||
}
|
}
|
||||||
uart_putstr("\r\nlength"); uart_hexdump(&i, 8);
|
cli_putstr("\r\nlength"); cli_hexdump(&i, 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
void testrun_sha1(void){
|
void testrun_sha1(void){
|
||||||
sha1_hash_t hash;
|
sha1_hash_t hash;
|
||||||
sha1(&hash,"abc",3*8);
|
sha1(&hash,"abc",3*8);
|
||||||
uart_putstr("\r\nsha1(\"abc\") = \r\n\t");
|
cli_putstr("\r\nsha1(\"abc\") = \r\n\t");
|
||||||
uart_hexdump(hash,SHA1_HASH_BITS/8);
|
cli_hexdump(hash,SHA1_HASH_BITS/8);
|
||||||
|
|
||||||
sha1(&hash,"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",448);
|
sha1(&hash,"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",448);
|
||||||
uart_putstr("\r\nsha1(\"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq\") = \r\n\t");
|
cli_putstr("\r\nsha1(\"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq\") = \r\n\t");
|
||||||
uart_hexdump(hash,SHA1_HASH_BITS/8);
|
cli_hexdump(hash,SHA1_HASH_BITS/8);
|
||||||
|
|
||||||
uart_putstr("\r\nsha1(1,000,000 * 'a') = \r\n\t");
|
cli_putstr("\r\nsha1(1,000,000 * 'a') = \r\n\t");
|
||||||
{
|
{
|
||||||
uint8_t block[SHA1_BLOCK_BITS/8];
|
uint8_t block[SHA1_BLOCK_BITS/8];
|
||||||
uint16_t i;
|
uint16_t i;
|
||||||
|
@ -101,10 +101,10 @@ void testrun_sha1(void){
|
||||||
sha1_lastBlock(&s,block,0);
|
sha1_lastBlock(&s,block,0);
|
||||||
sha1_ctx2hash(&hash, &s);
|
sha1_ctx2hash(&hash, &s);
|
||||||
}
|
}
|
||||||
uart_hexdump(hash,SHA1_HASH_BITS/8);
|
cli_hexdump(hash,SHA1_HASH_BITS/8);
|
||||||
|
|
||||||
|
|
||||||
uart_putstr("\r\nx");
|
cli_putstr("\r\nx");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -112,16 +112,16 @@ void testrun_sha1_2(void){
|
||||||
sha1_ctx_t ctx;
|
sha1_ctx_t ctx;
|
||||||
sha1_hash_t hash;
|
sha1_hash_t hash;
|
||||||
sha1(&hash,"",0);
|
sha1(&hash,"",0);
|
||||||
uart_putstr("\r\nsha1(NULL) = \r\n\t");
|
cli_putstr("\r\nsha1(NULL) = \r\n\t");
|
||||||
uart_hexdump(hash,SHA1_HASH_BYTES);
|
cli_hexdump(hash,SHA1_HASH_BYTES);
|
||||||
|
|
||||||
memset(hash, 0, SHA1_HASH_BYTES);
|
memset(hash, 0, SHA1_HASH_BYTES);
|
||||||
|
|
||||||
sha1_init(&ctx);
|
sha1_init(&ctx);
|
||||||
sha1_lastBlock(&ctx, "", 0);
|
sha1_lastBlock(&ctx, "", 0);
|
||||||
sha1_ctx2hash(&hash, &ctx);
|
sha1_ctx2hash(&hash, &ctx);
|
||||||
uart_putstr("\r\nsha1(NULL) = \r\n\t");
|
cli_putstr("\r\nsha1(NULL) = \r\n\t");
|
||||||
uart_hexdump(hash,SHA1_HASH_BYTES);
|
cli_hexdump(hash,SHA1_HASH_BYTES);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -139,27 +139,27 @@ void testrun_performance_sha1(void){
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
sha1_init(&ctx);
|
sha1_init(&ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
cli_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
sha1_nextBlock(&ctx, data);
|
sha1_nextBlock(&ctx, data);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tone-block time: "));
|
cli_putstr_P(PSTR("\r\n\tone-block time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
sha1_lastBlock(&ctx, data, 0);
|
sha1_lastBlock(&ctx, data, 0);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tlast block time: "));
|
cli_putstr_P(PSTR("\r\n\tlast block time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n"));
|
cli_putstr_P(PSTR("\r\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -198,15 +198,15 @@ const hfdesc_t* algolist[] PROGMEM = {
|
||||||
|
|
||||||
int main (void){
|
int main (void){
|
||||||
DEBUG_INIT();
|
DEBUG_INIT();
|
||||||
uart_putstr("\r\n");
|
|
||||||
cli_rx = uart_getc;
|
cli_rx = uart_getc;
|
||||||
cli_tx = uart_putc;
|
cli_tx = uart_putc;
|
||||||
shavs_algolist=(hfdesc_t**)algolist;
|
shavs_algolist=(hfdesc_t**)algolist;
|
||||||
shavs_algo=(hfdesc_t*)&sha1_desc;
|
shavs_algo=(hfdesc_t*)&sha1_desc;
|
||||||
for(;;){
|
for(;;){
|
||||||
uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
cli_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
||||||
uart_putstr(algo_name);
|
cli_putstr(algo_name);
|
||||||
uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
cli_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
||||||
cmd_interface(cmdlist);
|
cmd_interface(cmdlist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,27 +78,27 @@ void testrun_performance_sha256(void){
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
sha256_init(&ctx);
|
sha256_init(&ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
cli_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
sha256_nextBlock(&ctx, data);
|
sha256_nextBlock(&ctx, data);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tone-block time: "));
|
cli_putstr_P(PSTR("\r\n\tone-block time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
sha256_lastBlock(&ctx, data, 0);
|
sha256_lastBlock(&ctx, data, 0);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tlast block time: "));
|
cli_putstr_P(PSTR("\r\n\tlast block time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n"));
|
cli_putstr_P(PSTR("\r\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
@ -133,15 +133,15 @@ cmdlist_entry_t cmdlist[] PROGMEM = {
|
||||||
|
|
||||||
int main (void){
|
int main (void){
|
||||||
DEBUG_INIT();
|
DEBUG_INIT();
|
||||||
uart_putstr("\r\n");
|
|
||||||
cli_rx = uart_getc;
|
cli_rx = uart_getc;
|
||||||
cli_tx = uart_putc;
|
cli_tx = uart_putc;
|
||||||
shavs_algolist=(hfdesc_t**)algolist;
|
shavs_algolist=(hfdesc_t**)algolist;
|
||||||
shavs_algo=(hfdesc_t*)&sha256_desc;
|
shavs_algo=(hfdesc_t*)&sha256_desc;
|
||||||
for(;;){
|
for(;;){
|
||||||
uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
cli_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
||||||
uart_putstr(algo_name);
|
cli_putstr(algo_name);
|
||||||
uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
cli_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
||||||
cmd_interface(cmdlist);
|
cmd_interface(cmdlist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -84,19 +84,19 @@ void testrun_performance_shabea(void){
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
shabea256(data, key, 256, 1, 16);
|
shabea256(data, key, 256, 1, 16);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tencrypt time: "));
|
cli_putstr_P(PSTR("\r\n\tencrypt time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
shabea256(data, key, 256, 0, 16);
|
shabea256(data, key, 256, 0, 16);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tdecrypt time: "));
|
cli_putstr_P(PSTR("\r\n\tdecrypt time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n"));
|
cli_putstr_P(PSTR("\r\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
@ -104,24 +104,24 @@ void testrun_performance_shabea(void){
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
void testencrypt(uint8_t* block, uint8_t* key){
|
void testencrypt(uint8_t* block, uint8_t* key){
|
||||||
uart_putstr("\r\n==testy-encrypt==\r\n key: ");
|
cli_putstr("\r\n==testy-encrypt==\r\n key: ");
|
||||||
uart_hexdump(key,16);
|
cli_hexdump(key,16);
|
||||||
uart_putstr("\r\n plain: ");
|
cli_putstr("\r\n plain: ");
|
||||||
uart_hexdump(block,32);
|
cli_hexdump(block,32);
|
||||||
shabea256(block,key,128,1,16);
|
shabea256(block,key,128,1,16);
|
||||||
uart_putstr("\r\n crypt: ");
|
cli_putstr("\r\n crypt: ");
|
||||||
uart_hexdump(block,32);
|
cli_hexdump(block,32);
|
||||||
}
|
}
|
||||||
|
|
||||||
void testdecrypt(uint8_t* block, uint8_t* key){
|
void testdecrypt(uint8_t* block, uint8_t* key){
|
||||||
|
|
||||||
uart_putstr("\r\n==testy-decrypt==\r\n key: ");
|
cli_putstr("\r\n==testy-decrypt==\r\n key: ");
|
||||||
uart_hexdump(key,16);
|
cli_hexdump(key,16);
|
||||||
uart_putstr("\r\n crypt: ");
|
cli_putstr("\r\n crypt: ");
|
||||||
uart_hexdump(block,32);
|
cli_hexdump(block,32);
|
||||||
shabea256(block,key,128,0,16);
|
shabea256(block,key,128,0,16);
|
||||||
uart_putstr("\r\n plain: ");
|
cli_putstr("\r\n plain: ");
|
||||||
uart_hexdump(block,32);
|
cli_hexdump(block,32);
|
||||||
}
|
}
|
||||||
|
|
||||||
void testrun_shabea(void){
|
void testrun_shabea(void){
|
||||||
|
@ -181,13 +181,13 @@ cmdlist_entry_t cmdlist[] PROGMEM = {
|
||||||
|
|
||||||
int main (void){
|
int main (void){
|
||||||
DEBUG_INIT();
|
DEBUG_INIT();
|
||||||
uart_putstr("\r\n");
|
|
||||||
cli_rx = uart_getc;
|
cli_rx = uart_getc;
|
||||||
cli_tx = uart_putc;
|
cli_tx = uart_putc;
|
||||||
for(;;){
|
for(;;){
|
||||||
uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
cli_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
||||||
uart_putstr(algo_name);
|
cli_putstr(algo_name);
|
||||||
uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
cli_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
||||||
cmd_interface(cmdlist);
|
cmd_interface(cmdlist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -76,7 +76,7 @@ void testrun_performance_shacal1enc(void){
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
print_time_P(PSTR("\tencrypt time: "), t);
|
print_time_P(PSTR("\tencrypt time: "), t);
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n"));
|
cli_putstr_P(PSTR("\r\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
@ -98,13 +98,13 @@ cmdlist_entry_t cmdlist[] PROGMEM = {
|
||||||
|
|
||||||
int main (void){
|
int main (void){
|
||||||
DEBUG_INIT();
|
DEBUG_INIT();
|
||||||
uart_putstr("\r\n");
|
|
||||||
cli_rx = uart_getc;
|
cli_rx = uart_getc;
|
||||||
cli_tx = uart_putc;
|
cli_tx = uart_putc;
|
||||||
for(;;){
|
for(;;){
|
||||||
uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
cli_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
||||||
uart_putstr(algo_name);
|
cli_putstr(algo_name);
|
||||||
uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
cli_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
||||||
cmd_interface(cmdlist);
|
cmd_interface(cmdlist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -76,7 +76,7 @@ void testrun_performance_shacal2enc(void){
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
print_time_P(PSTR("\tencrypt time: "), t);
|
print_time_P(PSTR("\tencrypt time: "), t);
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n"));
|
cli_putstr_P(PSTR("\r\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
@ -98,13 +98,13 @@ cmdlist_entry_t cmdlist[] PROGMEM = {
|
||||||
|
|
||||||
int main (void){
|
int main (void){
|
||||||
DEBUG_INIT();
|
DEBUG_INIT();
|
||||||
uart_putstr("\r\n");
|
|
||||||
cli_rx = uart_getc;
|
cli_rx = uart_getc;
|
||||||
cli_tx = uart_putc;
|
cli_tx = uart_putc;
|
||||||
for(;;){
|
for(;;){
|
||||||
uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
cli_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
||||||
uart_putstr(algo_name);
|
cli_putstr(algo_name);
|
||||||
uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
cli_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
||||||
cmd_interface(cmdlist);
|
cmd_interface(cmdlist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,19 +72,19 @@ void testrun_performance_skipjack(void){
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
skipjack_enc(data, key);
|
skipjack_enc(data, key);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tencrypt time: "));
|
cli_putstr_P(PSTR("\r\n\tencrypt time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
skipjack_dec(data, key);
|
skipjack_dec(data, key);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tdecrypt time: "));
|
cli_putstr_P(PSTR("\r\n\tdecrypt time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n"));
|
cli_putstr_P(PSTR("\r\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
@ -92,23 +92,23 @@ void testrun_performance_skipjack(void){
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
void testencrypt(uint8_t* block, uint8_t* key){
|
void testencrypt(uint8_t* block, uint8_t* key){
|
||||||
uart_putstr("\r\n==testy-encrypt==\r\n key: ");
|
cli_putstr("\r\n==testy-encrypt==\r\n key: ");
|
||||||
uart_hexdump(key,10);
|
cli_hexdump(key,10);
|
||||||
uart_putstr("\r\n plain: ");
|
cli_putstr("\r\n plain: ");
|
||||||
uart_hexdump(block,8);
|
cli_hexdump(block,8);
|
||||||
skipjack_enc(block,key);
|
skipjack_enc(block,key);
|
||||||
uart_putstr("\r\n crypt: ");
|
cli_putstr("\r\n crypt: ");
|
||||||
uart_hexdump(block,8);
|
cli_hexdump(block,8);
|
||||||
}
|
}
|
||||||
|
|
||||||
void testdecrypt(uint8_t* block, uint8_t* key){
|
void testdecrypt(uint8_t* block, uint8_t* key){
|
||||||
uart_putstr("\r\n==testy-decrypt==\r\n key: ");
|
cli_putstr("\r\n==testy-decrypt==\r\n key: ");
|
||||||
uart_hexdump(key,10);
|
cli_hexdump(key,10);
|
||||||
uart_putstr("\r\n crypt: ");
|
cli_putstr("\r\n crypt: ");
|
||||||
uart_hexdump(block,8);
|
cli_hexdump(block,8);
|
||||||
skipjack_dec(block,key);
|
skipjack_dec(block,key);
|
||||||
uart_putstr("\r\n plain: ");
|
cli_putstr("\r\n plain: ");
|
||||||
uart_hexdump(block,8);
|
cli_hexdump(block,8);
|
||||||
}
|
}
|
||||||
|
|
||||||
void testrun_skipjack(void){
|
void testrun_skipjack(void){
|
||||||
|
@ -152,13 +152,13 @@ cmdlist_entry_t cmdlist[] PROGMEM = {
|
||||||
|
|
||||||
int main (void){
|
int main (void){
|
||||||
DEBUG_INIT();
|
DEBUG_INIT();
|
||||||
uart_putstr("\r\n");
|
|
||||||
cli_rx = uart_getc;
|
cli_rx = uart_getc;
|
||||||
cli_tx = uart_putc;
|
cli_tx = uart_putc;
|
||||||
for(;;){
|
for(;;){
|
||||||
uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
cli_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
||||||
uart_putstr(algo_name);
|
cli_putstr(algo_name);
|
||||||
uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
cli_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
||||||
cmd_interface(cmdlist);
|
cmd_interface(cmdlist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -81,17 +81,17 @@ void testrun_performance_tdes(void){
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
tdes_enc(data, data, key);
|
tdes_enc(data, data, key);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tencrypt time: "));
|
cli_putstr_P(PSTR("\r\n\tencrypt time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
tdes_dec(data, data, key);
|
tdes_dec(data, data, key);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tdecrypt time: "));
|
cli_putstr_P(PSTR("\r\n\tdecrypt time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
uart_putstr_P(PSTR("\r\n"));
|
cli_putstr_P(PSTR("\r\n"));
|
||||||
}
|
}
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* main *
|
* main *
|
||||||
|
@ -112,13 +112,13 @@ cmdlist_entry_t cmdlist[] PROGMEM = {
|
||||||
|
|
||||||
int main (void){
|
int main (void){
|
||||||
DEBUG_INIT();
|
DEBUG_INIT();
|
||||||
uart_putstr("\r\n");
|
|
||||||
cli_rx = uart_getc;
|
cli_rx = uart_getc;
|
||||||
cli_tx = uart_putc;
|
cli_tx = uart_putc;
|
||||||
for(;;){
|
for(;;){
|
||||||
uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
cli_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
||||||
uart_putstr(algo_name);
|
cli_putstr(algo_name);
|
||||||
uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
cli_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
||||||
cmd_interface(cmdlist);
|
cmd_interface(cmdlist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -81,18 +81,18 @@ void testrun_performance_trivium(void){
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
trivium_init(key, 80, iv, 80, &ctx);
|
trivium_init(key, 80, iv, 80, &ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
cli_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
trivium_enc(&ctx);
|
trivium_enc(&ctx);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tencrypt time: "));
|
cli_putstr_P(PSTR("\r\n\tencrypt time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n"));
|
cli_putstr_P(PSTR("\r\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
@ -114,13 +114,13 @@ cmdlist_entry_t cmdlist[] PROGMEM = {
|
||||||
|
|
||||||
int main (void){
|
int main (void){
|
||||||
DEBUG_INIT();
|
DEBUG_INIT();
|
||||||
uart_putstr("\r\n");
|
|
||||||
cli_rx = uart_getc;
|
cli_rx = uart_getc;
|
||||||
cli_tx = uart_putc;
|
cli_tx = uart_putc;
|
||||||
for(;;){
|
for(;;){
|
||||||
uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
cli_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
||||||
uart_putstr(algo_name);
|
cli_putstr(algo_name);
|
||||||
uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
cli_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
||||||
cmd_interface(cmdlist);
|
cmd_interface(cmdlist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,39 +88,39 @@ void testrun_twister224(void){
|
||||||
"12345678901234567890123456789012345678901234567890123456789012345678901234567890"};
|
"12345678901234567890123456789012345678901234567890123456789012345678901234567890"};
|
||||||
uint32_t i;
|
uint32_t i;
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n=== TWISTER-224 test suit (MD5 test values) ==="));
|
cli_putstr_P(PSTR("\r\n=== TWISTER-224 test suit (MD5 test values) ==="));
|
||||||
for(i=0; i<7; ++i){
|
for(i=0; i<7; ++i){
|
||||||
uart_putstr_P(PSTR("\r\n TWISTER-224 (\""));
|
cli_putstr_P(PSTR("\r\n TWISTER-224 (\""));
|
||||||
uart_putstr(testv[i]);
|
cli_putstr(testv[i]);
|
||||||
uart_putstr_P(PSTR("\") = \r\n\t"));
|
cli_putstr_P(PSTR("\") = \r\n\t"));
|
||||||
twister224(&hash, testv[i], strlen(testv[i])*8);
|
twister224(&hash, testv[i], strlen(testv[i])*8);
|
||||||
uart_hexdump(hash, 224/8);
|
cli_hexdump(hash, 224/8);
|
||||||
}
|
}
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n\r\n=== TWISTER-224 test suit (short test values) ==="));
|
cli_putstr_P(PSTR("\r\n\r\n=== TWISTER-224 test suit (short test values) ==="));
|
||||||
uint8_t stestv[]= {0x00, 0x00, 0xC0, 0xC0, 0x80, 0x48, 0x50};
|
uint8_t stestv[]= {0x00, 0x00, 0xC0, 0xC0, 0x80, 0x48, 0x50};
|
||||||
uint8_t stestl[]= { 0, 1, 2, 3, 4, 5, 6};
|
uint8_t stestl[]= { 0, 1, 2, 3, 4, 5, 6};
|
||||||
for(i=0; i<7; ++i){
|
for(i=0; i<7; ++i){
|
||||||
uart_putstr_P(PSTR("\r\n TWISTER-224 (\""));
|
cli_putstr_P(PSTR("\r\n TWISTER-224 (\""));
|
||||||
uart_hexdump(&(stestv[i]), 1);
|
cli_hexdump(&(stestv[i]), 1);
|
||||||
uart_putstr_P(PSTR("\") = \r\n\t"));
|
cli_putstr_P(PSTR("\") = \r\n\t"));
|
||||||
twister224(&hash, &(stestv[i]), stestl[i]);
|
twister224(&hash, &(stestv[i]), stestl[i]);
|
||||||
uart_hexdump(hash, 224/8);
|
cli_hexdump(hash, 224/8);
|
||||||
}
|
}
|
||||||
#ifdef TWISTER_LONGTEST
|
#ifdef TWISTER_LONGTEST
|
||||||
uart_putstr_P(PSTR("\r\n\r\n=== TWISTER-224 test suit (long test) ==="));
|
cli_putstr_P(PSTR("\r\n\r\n=== TWISTER-224 test suit (long test) ==="));
|
||||||
char* ltest= "abcdefghbcdefghicdefghijdefghijk"
|
char* ltest= "abcdefghbcdefghicdefghijdefghijk"
|
||||||
"efghijklfghijklmghijklmnhijklmno";
|
"efghijklfghijklmghijklmnhijklmno";
|
||||||
twister224_ctx_t ctx;
|
twister224_ctx_t ctx;
|
||||||
twister224_init(&ctx);
|
twister224_init(&ctx);
|
||||||
uart_putstr_P(PSTR("\r\n TWISTER-224 ( 16777216 x \""));
|
cli_putstr_P(PSTR("\r\n TWISTER-224 ( 16777216 x \""));
|
||||||
uart_putstr(ltest);
|
cli_putstr(ltest);
|
||||||
uart_putstr_P(PSTR("\") = \r\n\t"));
|
cli_putstr_P(PSTR("\") = \r\n\t"));
|
||||||
for(i=0; i<16777216; ++i){
|
for(i=0; i<16777216; ++i){
|
||||||
twister224_nextBlock(&ctx, ltest);
|
twister224_nextBlock(&ctx, ltest);
|
||||||
}
|
}
|
||||||
twister224_ctx2hash(hash, &ctx);
|
twister224_ctx2hash(hash, &ctx);
|
||||||
uart_hexdump(hash, 224/8);
|
cli_hexdump(hash, 224/8);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -139,9 +139,9 @@ void testrun_performance_twister224(void){
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
twister_small_init(&ctx, 224);
|
twister_small_init(&ctx, 224);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
cli_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
i=3000;
|
i=3000;
|
||||||
while(i--)
|
while(i--)
|
||||||
|
@ -150,9 +150,9 @@ void testrun_performance_twister224(void){
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
twister_small_nextBlock(&ctx, data);
|
twister_small_nextBlock(&ctx, data);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tone-block time: "));
|
cli_putstr_P(PSTR("\r\n\tone-block time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
i=3000;
|
i=3000;
|
||||||
while(i--)
|
while(i--)
|
||||||
|
@ -161,9 +161,9 @@ void testrun_performance_twister224(void){
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
twister_small_lastBlock(&ctx, data, 0);
|
twister_small_lastBlock(&ctx, data, 0);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tlast block time: "));
|
cli_putstr_P(PSTR("\r\n\tlast block time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
i=3000;
|
i=3000;
|
||||||
while(i--)
|
while(i--)
|
||||||
|
@ -172,15 +172,15 @@ void testrun_performance_twister224(void){
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
twister_small_ctx2hash(data, &ctx, 224);
|
twister_small_ctx2hash(data, &ctx, 224);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tctx2hash time: "));
|
cli_putstr_P(PSTR("\r\n\tctx2hash time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
i=3000;
|
i=3000;
|
||||||
while(i--)
|
while(i--)
|
||||||
_delay_ms(1);
|
_delay_ms(1);
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n"));
|
cli_putstr_P(PSTR("\r\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -203,13 +203,13 @@ cmdlist_entry_t cmdlist[] PROGMEM = {
|
||||||
|
|
||||||
int main (void){
|
int main (void){
|
||||||
DEBUG_INIT();
|
DEBUG_INIT();
|
||||||
uart_putstr("\r\n");
|
|
||||||
cli_rx = uart_getc;
|
cli_rx = uart_getc;
|
||||||
cli_tx = uart_putc;
|
cli_tx = uart_putc;
|
||||||
for(;;){
|
for(;;){
|
||||||
uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
cli_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
||||||
uart_putstr(algo_name);
|
cli_putstr(algo_name);
|
||||||
uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
cli_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
||||||
cmd_interface(cmdlist);
|
cmd_interface(cmdlist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -76,7 +76,7 @@ void testrun_nessie_twister256(void){
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
void print_hash(void* hash){
|
void print_hash(void* hash){
|
||||||
uart_hexdump(hash, 256/8);
|
cli_hexdump(hash, 256/8);
|
||||||
}
|
}
|
||||||
|
|
||||||
void testrun_twister256(void){
|
void testrun_twister256(void){
|
||||||
|
@ -91,35 +91,35 @@ void testrun_twister256(void){
|
||||||
"12345678901234567890123456789012345678901234567890123456789012345678901234567890"};
|
"12345678901234567890123456789012345678901234567890123456789012345678901234567890"};
|
||||||
uint32_t i;
|
uint32_t i;
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n=== TWISTER-256 test suit (MD5 test values) ==="));
|
cli_putstr_P(PSTR("\r\n=== TWISTER-256 test suit (MD5 test values) ==="));
|
||||||
for(i=0; i<7; ++i){
|
for(i=0; i<7; ++i){
|
||||||
uart_putstr_P(PSTR("\r\n TWISTER-256 (\""));
|
cli_putstr_P(PSTR("\r\n TWISTER-256 (\""));
|
||||||
uart_putstr(testv[i]);
|
cli_putstr(testv[i]);
|
||||||
uart_putstr_P(PSTR("\") = \r\n\t"));
|
cli_putstr_P(PSTR("\") = \r\n\t"));
|
||||||
twister256(&hash, testv[i], strlen(testv[i])*8);
|
twister256(&hash, testv[i], strlen(testv[i])*8);
|
||||||
print_hash(hash);
|
print_hash(hash);
|
||||||
}
|
}
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n\r\n=== TWISTER-256 test suit (short test values) ==="));
|
cli_putstr_P(PSTR("\r\n\r\n=== TWISTER-256 test suit (short test values) ==="));
|
||||||
uint8_t stestv[]= {0x00, 0x00, 0xC0, 0xC0, 0x80, 0x48, 0x50};
|
uint8_t stestv[]= {0x00, 0x00, 0xC0, 0xC0, 0x80, 0x48, 0x50};
|
||||||
uint8_t stestl[]= { 0, 1, 2, 3, 4, 5, 6};
|
uint8_t stestl[]= { 0, 1, 2, 3, 4, 5, 6};
|
||||||
for(i=0; i<7; ++i){
|
for(i=0; i<7; ++i){
|
||||||
uart_putstr_P(PSTR("\r\n TWISTER-256 (\""));
|
cli_putstr_P(PSTR("\r\n TWISTER-256 (\""));
|
||||||
uart_hexdump(&(stestv[i]), 1);
|
cli_hexdump(&(stestv[i]), 1);
|
||||||
uart_putstr_P(PSTR("\") = \r\n\t"));
|
cli_putstr_P(PSTR("\") = \r\n\t"));
|
||||||
twister256(&hash, &(stestv[i]), stestl[i]);
|
twister256(&hash, &(stestv[i]), stestl[i]);
|
||||||
print_hash(hash);
|
print_hash(hash);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef TWISTER_LONGTEST
|
#ifdef TWISTER_LONGTEST
|
||||||
uart_putstr_P(PSTR("\r\n\r\n=== TWISTER-256 test suit (long test) ==="));
|
cli_putstr_P(PSTR("\r\n\r\n=== TWISTER-256 test suit (long test) ==="));
|
||||||
char* ltest= "abcdefghbcdefghicdefghijdefghijk"
|
char* ltest= "abcdefghbcdefghicdefghijdefghijk"
|
||||||
"efghijklfghijklmghijklmnhijklmno";
|
"efghijklfghijklmghijklmnhijklmno";
|
||||||
twister256_ctx_t ctx;
|
twister256_ctx_t ctx;
|
||||||
twister256_init(&ctx);
|
twister256_init(&ctx);
|
||||||
uart_putstr_P(PSTR("\r\n TWISTER-256 ( 16777216 x \""));
|
cli_putstr_P(PSTR("\r\n TWISTER-256 ( 16777216 x \""));
|
||||||
uart_putstr(ltest);
|
cli_putstr(ltest);
|
||||||
uart_putstr_P(PSTR("\") = \r\n\t"));
|
cli_putstr_P(PSTR("\") = \r\n\t"));
|
||||||
for(i=0; i<16777216; ++i){
|
for(i=0; i<16777216; ++i){
|
||||||
twister224_nextBlock(&ctx, ltest);
|
twister224_nextBlock(&ctx, ltest);
|
||||||
}
|
}
|
||||||
|
@ -143,34 +143,34 @@ void testrun_performance_twister256(void){
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
twister_small_init(&ctx, 256);
|
twister_small_init(&ctx, 256);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
cli_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
twister_small_nextBlock(&ctx, data);
|
twister_small_nextBlock(&ctx, data);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tone-block time: "));
|
cli_putstr_P(PSTR("\r\n\tone-block time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
twister_small_lastBlock(&ctx, data, 0);
|
twister_small_lastBlock(&ctx, data, 0);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tlast block time: "));
|
cli_putstr_P(PSTR("\r\n\tlast block time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
twister_small_ctx2hash(data, &ctx, 256);
|
twister_small_ctx2hash(data, &ctx, 256);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tctx2hash time: "));
|
cli_putstr_P(PSTR("\r\n\tctx2hash time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n"));
|
cli_putstr_P(PSTR("\r\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -193,13 +193,13 @@ cmdlist_entry_t cmdlist[] PROGMEM = {
|
||||||
|
|
||||||
int main (void){
|
int main (void){
|
||||||
DEBUG_INIT();
|
DEBUG_INIT();
|
||||||
uart_putstr("\r\n");
|
|
||||||
cli_rx = uart_getc;
|
cli_rx = uart_getc;
|
||||||
cli_tx = uart_putc;
|
cli_tx = uart_putc;
|
||||||
for(;;){
|
for(;;){
|
||||||
uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
cli_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
||||||
uart_putstr(algo_name);
|
cli_putstr(algo_name);
|
||||||
uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
cli_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
||||||
cmd_interface(cmdlist);
|
cmd_interface(cmdlist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,9 +75,9 @@ void testrun_nessie_twister384(void){
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
void print_hash(void* hash){
|
void print_hash(void* hash){
|
||||||
uart_hexdump(hash, 256/8);
|
cli_hexdump(hash, 256/8);
|
||||||
uart_putstr_P(PSTR("\r\n\t"));
|
cli_putstr_P(PSTR("\r\n\t"));
|
||||||
uart_hexdump((uint8_t*)hash+256/8, 128/8);
|
cli_hexdump((uint8_t*)hash+256/8, 128/8);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -93,36 +93,36 @@ void testrun_twister384(void){
|
||||||
"12345678901234567890123456789012345678901234567890123456789012345678901234567890"};
|
"12345678901234567890123456789012345678901234567890123456789012345678901234567890"};
|
||||||
uint32_t i;
|
uint32_t i;
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n=== TWISTER-384 test suit (MD5 test values) ==="));
|
cli_putstr_P(PSTR("\r\n=== TWISTER-384 test suit (MD5 test values) ==="));
|
||||||
for(i=0; i<7; ++i){
|
for(i=0; i<7; ++i){
|
||||||
uart_putstr_P(PSTR("\r\n TWISTER-384 (\""));
|
cli_putstr_P(PSTR("\r\n TWISTER-384 (\""));
|
||||||
uart_putstr(testv[i]);
|
cli_putstr(testv[i]);
|
||||||
uart_putstr_P(PSTR("\") = \r\n\t"));
|
cli_putstr_P(PSTR("\") = \r\n\t"));
|
||||||
twister384(&hash, testv[i], strlen(testv[i])*8);
|
twister384(&hash, testv[i], strlen(testv[i])*8);
|
||||||
print_hash(hash);
|
print_hash(hash);
|
||||||
// return;
|
// return;
|
||||||
}
|
}
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n\r\n=== TWISTER-384 test suit (short test values) ==="));
|
cli_putstr_P(PSTR("\r\n\r\n=== TWISTER-384 test suit (short test values) ==="));
|
||||||
uint8_t stestv[]= {0x00, 0x00, 0xC0, 0xC0, 0x80, 0x48, 0x50};
|
uint8_t stestv[]= {0x00, 0x00, 0xC0, 0xC0, 0x80, 0x48, 0x50};
|
||||||
uint8_t stestl[]= { 0, 1, 2, 3, 4, 5, 6};
|
uint8_t stestl[]= { 0, 1, 2, 3, 4, 5, 6};
|
||||||
for(i=0; i<7; ++i){
|
for(i=0; i<7; ++i){
|
||||||
uart_putstr_P(PSTR("\r\n TWISTER-384 (\""));
|
cli_putstr_P(PSTR("\r\n TWISTER-384 (\""));
|
||||||
uart_hexdump(&(stestv[i]), 1);
|
cli_hexdump(&(stestv[i]), 1);
|
||||||
uart_putstr_P(PSTR("\") = \r\n\t"));
|
cli_putstr_P(PSTR("\") = \r\n\t"));
|
||||||
twister384(hash, &(stestv[i]), stestl[i]);
|
twister384(hash, &(stestv[i]), stestl[i]);
|
||||||
print_hash(hash);
|
print_hash(hash);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef TWISTER_LONGTEST
|
#ifdef TWISTER_LONGTEST
|
||||||
uart_putstr_P(PSTR("\r\n\r\n=== TWISTER-384 test suit (long test) ==="));
|
cli_putstr_P(PSTR("\r\n\r\n=== TWISTER-384 test suit (long test) ==="));
|
||||||
char* ltest= "abcdefghbcdefghicdefghijdefghijk"
|
char* ltest= "abcdefghbcdefghicdefghijdefghijk"
|
||||||
"efghijklfghijklmghijklmnhijklmno";
|
"efghijklfghijklmghijklmnhijklmno";
|
||||||
twister384_ctx_t ctx;
|
twister384_ctx_t ctx;
|
||||||
twister384_init(&ctx);
|
twister384_init(&ctx);
|
||||||
uart_putstr_P(PSTR("\r\n TWISTER-384 ( 16777216 x \""));
|
cli_putstr_P(PSTR("\r\n TWISTER-384 ( 16777216 x \""));
|
||||||
uart_putstr(ltest);
|
cli_putstr(ltest);
|
||||||
uart_putstr_P(PSTR("\") = \r\n\t"));
|
cli_putstr_P(PSTR("\") = \r\n\t"));
|
||||||
for(i=0; i<16777216; ++i){
|
for(i=0; i<16777216; ++i){
|
||||||
twister384_nextBlock(&ctx, ltest);
|
twister384_nextBlock(&ctx, ltest);
|
||||||
}
|
}
|
||||||
|
@ -146,34 +146,34 @@ void testrun_performance_twister384(void){
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
twister_big_init(&ctx, 384);
|
twister_big_init(&ctx, 384);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
cli_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
twister_big_nextBlock(&ctx, data);
|
twister_big_nextBlock(&ctx, data);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tone-block time: "));
|
cli_putstr_P(PSTR("\r\n\tone-block time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
twister_big_lastBlock(&ctx, data, 0);
|
twister_big_lastBlock(&ctx, data, 0);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tlast block time: "));
|
cli_putstr_P(PSTR("\r\n\tlast block time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
twister_big_ctx2hash(data, &ctx, 384);
|
twister_big_ctx2hash(data, &ctx, 384);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tctx2hash time: "));
|
cli_putstr_P(PSTR("\r\n\tctx2hash time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n"));
|
cli_putstr_P(PSTR("\r\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -197,13 +197,13 @@ cmdlist_entry_t cmdlist[] PROGMEM = {
|
||||||
|
|
||||||
int main (void){
|
int main (void){
|
||||||
DEBUG_INIT();
|
DEBUG_INIT();
|
||||||
uart_putstr("\r\n");
|
|
||||||
cli_rx = uart_getc;
|
cli_rx = uart_getc;
|
||||||
cli_tx = uart_putc;
|
cli_tx = uart_putc;
|
||||||
for(;;){
|
for(;;){
|
||||||
uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
cli_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
||||||
uart_putstr(algo_name);
|
cli_putstr(algo_name);
|
||||||
uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
cli_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
||||||
cmd_interface(cmdlist);
|
cmd_interface(cmdlist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,9 +75,9 @@ void testrun_nessie_twister512(void){
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
void print_hash(void* hash){
|
void print_hash(void* hash){
|
||||||
uart_hexdump(hash, 256/8);
|
cli_hexdump(hash, 256/8);
|
||||||
uart_putstr_P(PSTR("\r\n\t"));
|
cli_putstr_P(PSTR("\r\n\t"));
|
||||||
uart_hexdump((uint8_t*)hash+256/8, 256/8);
|
cli_hexdump((uint8_t*)hash+256/8, 256/8);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -93,36 +93,36 @@ void testrun_twister512(void){
|
||||||
"12345678901234567890123456789012345678901234567890123456789012345678901234567890"};
|
"12345678901234567890123456789012345678901234567890123456789012345678901234567890"};
|
||||||
uint32_t i;
|
uint32_t i;
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n=== TWISTER-512 test suit (MD5 test values) ==="));
|
cli_putstr_P(PSTR("\r\n=== TWISTER-512 test suit (MD5 test values) ==="));
|
||||||
for(i=0; i<7; ++i){
|
for(i=0; i<7; ++i){
|
||||||
uart_putstr_P(PSTR("\r\n TWISTER-512 (\""));
|
cli_putstr_P(PSTR("\r\n TWISTER-512 (\""));
|
||||||
uart_putstr(testv[i]);
|
cli_putstr(testv[i]);
|
||||||
uart_putstr_P(PSTR("\") = \r\n\t"));
|
cli_putstr_P(PSTR("\") = \r\n\t"));
|
||||||
twister512(&hash, testv[i], strlen(testv[i])*8);
|
twister512(&hash, testv[i], strlen(testv[i])*8);
|
||||||
print_hash(hash);
|
print_hash(hash);
|
||||||
// return;
|
// return;
|
||||||
}
|
}
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n\r\n=== TWISTER-512 test suit (short test values) ==="));
|
cli_putstr_P(PSTR("\r\n\r\n=== TWISTER-512 test suit (short test values) ==="));
|
||||||
uint8_t stestv[]= {0x00, 0x00, 0xC0, 0xC0, 0x80, 0x48, 0x50};
|
uint8_t stestv[]= {0x00, 0x00, 0xC0, 0xC0, 0x80, 0x48, 0x50};
|
||||||
uint8_t stestl[]= { 0, 1, 2, 3, 4, 5, 6};
|
uint8_t stestl[]= { 0, 1, 2, 3, 4, 5, 6};
|
||||||
for(i=0; i<7; ++i){
|
for(i=0; i<7; ++i){
|
||||||
uart_putstr_P(PSTR("\r\n TWISTER-512 (\""));
|
cli_putstr_P(PSTR("\r\n TWISTER-512 (\""));
|
||||||
uart_hexdump(&(stestv[i]), 1);
|
cli_hexdump(&(stestv[i]), 1);
|
||||||
uart_putstr_P(PSTR("\") = \r\n\t"));
|
cli_putstr_P(PSTR("\") = \r\n\t"));
|
||||||
twister512(hash, &(stestv[i]), stestl[i]);
|
twister512(hash, &(stestv[i]), stestl[i]);
|
||||||
print_hash(hash);
|
print_hash(hash);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef TWISTER_LONGTEST
|
#ifdef TWISTER_LONGTEST
|
||||||
uart_putstr_P(PSTR("\r\n\r\n=== TWISTER-512 test suit (long test) ==="));
|
cli_putstr_P(PSTR("\r\n\r\n=== TWISTER-512 test suit (long test) ==="));
|
||||||
char* ltest= "abcdefghbcdefghicdefghijdefghijk"
|
char* ltest= "abcdefghbcdefghicdefghijdefghijk"
|
||||||
"efghijklfghijklmghijklmnhijklmno";
|
"efghijklfghijklmghijklmnhijklmno";
|
||||||
twister512_ctx_t ctx;
|
twister512_ctx_t ctx;
|
||||||
twister512_init(&ctx);
|
twister512_init(&ctx);
|
||||||
uart_putstr_P(PSTR("\r\n TWISTER-512 ( 16777216 x \""));
|
cli_putstr_P(PSTR("\r\n TWISTER-512 ( 16777216 x \""));
|
||||||
uart_putstr(ltest);
|
cli_putstr(ltest);
|
||||||
uart_putstr_P(PSTR("\") = \r\n\t"));
|
cli_putstr_P(PSTR("\") = \r\n\t"));
|
||||||
for(i=0; i<16777216; ++i){
|
for(i=0; i<16777216; ++i){
|
||||||
twister512_nextBlock(&ctx, ltest);
|
twister512_nextBlock(&ctx, ltest);
|
||||||
}
|
}
|
||||||
|
@ -146,34 +146,34 @@ void testrun_performance_twister512(void){
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
twister_big_init(&ctx, 512);
|
twister_big_init(&ctx, 512);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
cli_putstr_P(PSTR("\r\n\tctx-gen time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
twister_big_nextBlock(&ctx, data);
|
twister_big_nextBlock(&ctx, data);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tone-block time: "));
|
cli_putstr_P(PSTR("\r\n\tone-block time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
twister_big_lastBlock(&ctx, data, 0);
|
twister_big_lastBlock(&ctx, data, 0);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tlast block time: "));
|
cli_putstr_P(PSTR("\r\n\tlast block time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
startTimer(1);
|
startTimer(1);
|
||||||
twister_big_ctx2hash(data, &ctx, 512);
|
twister_big_ctx2hash(data, &ctx, 512);
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
uart_putstr_P(PSTR("\r\n\tctx2hash time: "));
|
cli_putstr_P(PSTR("\r\n\tctx2hash time: "));
|
||||||
ultoa((unsigned long)t, str, 10);
|
ultoa((unsigned long)t, str, 10);
|
||||||
uart_putstr(str);
|
cli_putstr(str);
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n"));
|
cli_putstr_P(PSTR("\r\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -197,13 +197,13 @@ cmdlist_entry_t cmdlist[] PROGMEM = {
|
||||||
|
|
||||||
int main (void){
|
int main (void){
|
||||||
DEBUG_INIT();
|
DEBUG_INIT();
|
||||||
uart_putstr("\r\n");
|
|
||||||
cli_rx = uart_getc;
|
cli_rx = uart_getc;
|
||||||
cli_tx = uart_putc;
|
cli_tx = uart_putc;
|
||||||
for(;;){
|
for(;;){
|
||||||
uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
cli_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
||||||
uart_putstr(algo_name);
|
cli_putstr(algo_name);
|
||||||
uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
cli_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
||||||
cmd_interface(cmdlist);
|
cmd_interface(cmdlist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -80,7 +80,7 @@ void testrun_performance_xtea(void){
|
||||||
t = stopTimer();
|
t = stopTimer();
|
||||||
print_time_P(PSTR("\tdecrypt time: "), t);
|
print_time_P(PSTR("\tdecrypt time: "), t);
|
||||||
|
|
||||||
uart_putstr_P(PSTR("\r\n"));
|
cli_putstr_P(PSTR("\r\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
@ -102,13 +102,13 @@ cmdlist_entry_t cmdlist[] PROGMEM = {
|
||||||
|
|
||||||
int main (void){
|
int main (void){
|
||||||
DEBUG_INIT();
|
DEBUG_INIT();
|
||||||
uart_putstr("\r\n");
|
|
||||||
cli_rx = uart_getc;
|
cli_rx = uart_getc;
|
||||||
cli_tx = uart_putc;
|
cli_tx = uart_putc;
|
||||||
for(;;){
|
for(;;){
|
||||||
uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
cli_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
|
||||||
uart_putstr(algo_name);
|
cli_putstr(algo_name);
|
||||||
uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
cli_putstr_P(PSTR(")\r\nloaded and running\r\n"));
|
||||||
cmd_interface(cmdlist);
|
cmd_interface(cmdlist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
* */
|
* */
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <stdlib.h>
|
||||||
#include "nessie_mac_test.h"
|
#include "nessie_mac_test.h"
|
||||||
#include "nessie_common.h"
|
#include "nessie_common.h"
|
||||||
#include "uart.h"
|
#include "uart.h"
|
||||||
|
@ -164,18 +165,29 @@ void one_in512_mac(uint16_t pos, uint8_t* key){
|
||||||
}
|
}
|
||||||
|
|
||||||
static
|
static
|
||||||
void tv4_mac(uint8_t* key){
|
void tv4_mac(void){
|
||||||
uint8_t ctx[nessie_mac_ctx.ctx_size_B];
|
uint8_t ctx[nessie_mac_ctx.ctx_size_B];
|
||||||
uint8_t mac[MACSIZE_B];
|
uint8_t mac[MACSIZE_B];
|
||||||
uint8_t block[256/8];
|
uint8_t block[MACSIZE_B];
|
||||||
uint16_t n=256;
|
uint8_t core_key[] = {
|
||||||
|
0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
|
||||||
|
0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF,
|
||||||
|
0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF
|
||||||
|
};
|
||||||
|
uint8_t key[KEYSIZE_B];
|
||||||
|
uint16_t n=MACSIZE_B*8;
|
||||||
uint32_t i;
|
uint32_t i;
|
||||||
|
char str[6];
|
||||||
|
|
||||||
NESSIE_PUTSTR_P(PSTR("\r\n message="));
|
NESSIE_PUTSTR_P(PSTR("\r\n message="));
|
||||||
NESSIE_PUTSTR(PSTR("256 zero bits"));
|
utoa(MACSIZE_B*8, str, 10);
|
||||||
memset(block, 0, 256/8);
|
NESSIE_PUTSTR(str);
|
||||||
|
NESSIE_PUTSTR_P(PSTR(" zero bits"));
|
||||||
nessie_mac_ctx.mac_init(key, nessie_mac_ctx.keysize_b, ctx);;
|
memset(block, 0, MACSIZE_B);
|
||||||
|
for(i=0; i<KEYSIZE_B; ++i)
|
||||||
|
key[i] = core_key[i%(3*8)];
|
||||||
|
nessie_print_item("key", key, KEYSIZE_B);
|
||||||
|
nessie_mac_ctx.mac_init(key, nessie_mac_ctx.keysize_b, ctx);
|
||||||
while(n>nessie_mac_ctx.blocksize_B*8){
|
while(n>nessie_mac_ctx.blocksize_B*8){
|
||||||
nessie_mac_ctx.mac_next(block, ctx);
|
nessie_mac_ctx.mac_next(block, ctx);
|
||||||
n -= nessie_mac_ctx.blocksize_B*8;
|
n -= nessie_mac_ctx.blocksize_B*8;
|
||||||
|
@ -265,8 +277,10 @@ void nessie_mac_run(void){
|
||||||
nessie_print_setheader(set);
|
nessie_print_setheader(set);
|
||||||
/* we use the same key as above */
|
/* we use the same key as above */
|
||||||
nessie_print_set_vector(set, 0);
|
nessie_print_set_vector(set, 0);
|
||||||
tv4_mac(key);
|
tv4_mac();
|
||||||
/* test set 5 */
|
/* test set 5 */
|
||||||
|
set=5;
|
||||||
|
nessie_print_setheader(set);
|
||||||
for(i=0; i<nessie_mac_ctx.keysize_b; ++i){
|
for(i=0; i<nessie_mac_ctx.keysize_b; ++i){
|
||||||
nessie_print_set_vector(set, i);
|
nessie_print_set_vector(set, i);
|
||||||
memset(key, 0, KEYSIZE_B);
|
memset(key, 0, KEYSIZE_B);
|
||||||
|
|
|
@ -81,6 +81,9 @@
|
||||||
|
|
||||||
|
|
||||||
#ifdef UART_XON_XOFF
|
#ifdef UART_XON_XOFF
|
||||||
|
#define XON 0x11
|
||||||
|
#define XOFF 0x13
|
||||||
|
|
||||||
#ifdef UART_INTERRUPT
|
#ifdef UART_INTERRUPT
|
||||||
void uart_insertc(char c);
|
void uart_insertc(char c);
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -12488,7 +12488,8 @@ Set 3, vector#511:
|
||||||
Test vectors -- set 4
|
Test vectors -- set 4
|
||||||
=====================
|
=====================
|
||||||
|
|
||||||
Iterated message digest computation (100000 times): Set 4, vector# 0:
|
Iterated message digest computation (100000 times):
|
||||||
|
Set 4, vector# 0:
|
||||||
message=160 zero bits
|
message=160 zero bits
|
||||||
key=00112233445566778899AABBCCDDEEFF
|
key=00112233445566778899AABBCCDDEEFF
|
||||||
0123456789ABCDEF0011223344556677
|
0123456789ABCDEF0011223344556677
|
||||||
|
|
|
@ -14046,7 +14046,8 @@ Set 3, vector#511:
|
||||||
Test vectors -- set 4
|
Test vectors -- set 4
|
||||||
=====================
|
=====================
|
||||||
|
|
||||||
Iterated message digest computation (100000 times): Set 4, vector# 0:
|
Iterated message digest computation (100000 times):
|
||||||
|
Set 4, vector# 0:
|
||||||
message=256 zero bits
|
message=256 zero bits
|
||||||
key=00112233445566778899AABBCCDDEEFF
|
key=00112233445566778899AABBCCDDEEFF
|
||||||
0123456789ABCDEF0011223344556677
|
0123456789ABCDEF0011223344556677
|
||||||
|
|
Loading…
Reference in New Issue