#ifndef __CONFIG_H__
#define __CONFIG_H__
#include <avr/io.h>
-#define F_CPU 20000000
-// #define F_CPU 16000000 /* Oszillator-Frequenz in Hz */
+// #define F_CPU 20000000
+ #define F_CPU 16000000 /* Oszillator-Frequenz in Hz */
// #define F_CPU 14745600
$(ALGO_NAME)_OBJ := A5_1.o
$(ALGO_NAME)_TEST_BIN := main-a5_1-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_stream_test.o nessie_common.o cli.o string-extras.o
+ nessie_stream_test.o dbz_strings.o nessie_common.o cli.o string-extras.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := aes_enc-asm.o aes_dec-asm.o aes_sbox-asm.o aes_invsbox-asm.o \
aes_keyschedule-asm.o
$(ALGO_NAME)_TEST_BIN := main-aes-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
+ nessie_bc_test.o dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := test nessie
$(ALGO_NAME)_PERFORMANCE_TEST := performance
$(ALGO_NAME)_OBJ := aes_enc-asm.o aes_dec-asm_faster.o aes_sbox-asm.o aes_invsbox-asm.o \
aes_keyschedule-asm.o
$(ALGO_NAME)_TEST_BIN := main-aes-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
+ nessie_bc_test.o dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := test nessie
$(ALGO_NAME)_PERFORMANCE_TEST := performance
aes128_enc.o aes128_dec.o aes192_enc.o aes192_dec.o \
aes256_enc.o aes256_dec.o
$(ALGO_NAME)_TEST_BIN := main-aes-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
+ nessie_bc_test.o dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := test nessie
$(ALGO_NAME)_PERFORMANCE_TEST := performance
$(ALGO_NAME)_OBJ := arcfour-asm.o
$(ALGO_NAME)_TEST_BIN := main-arcfour-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_stream_test.o nessie_common.o cli.o string-extras.o \
+ nessie_stream_test.o dbz_strings.o nessie_common.o cli.o string-extras.o \
performance_test.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := arcfour.o
$(ALGO_NAME)_TEST_BIN := main-arcfour-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_stream_test.o nessie_common.o cli.o string-extras.o \
+ nessie_stream_test.o dbz_strings.o nessie_common.o cli.o string-extras.o \
performance_test.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := camellia128-stub.o camellia-asm.o
$(ALGO_NAME)_TEST_BIN := main-camellia-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
nessie_bc_test.o \
- nessie_common.o cli.o string-extras.o performance_test.o
+ dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := cast5.o
$(ALGO_NAME)_TEST_BIN := main-cast5-test.o debug.o uart.o hexdigit_tab.o serial-tools.o cli.o string-extras.o\
- nessie_bc_test.o nessie_common.o performance_test.o
+ nessie_bc_test.o dbz_strings.o nessie_common.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := des.o
$(ALGO_NAME)_TEST_BIN := main-des-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
+ nessie_bc_test.o dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := grain.o
$(ALGO_NAME)_TEST_BIN := main-grain-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_stream_test.o nessie_common.o cli.o string-extras.o \
+ nessie_stream_test.o dbz_strings.o nessie_common.o cli.o string-extras.o \
performance_test.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := hmac-md5.o md5-asm.o
$(ALGO_NAME)_TEST_BIN := main-hmac-md5-test.o debug.o uart.o hexdigit_tab.o serial-tools.o cli.o string-extras.o \
- nessie_mac_test.o nessie_common.o base64_enc.o base64_dec.o
+ nessie_mac_test.o dbz_strings.o nessie_common.o base64_enc.o base64_dec.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := hmac-sha1.o sha1-asm.o
$(ALGO_NAME)_TEST_BIN := main-hmac-sha1-test.o debug.o uart.o hexdigit_tab.o serial-tools.o cli.o string-extras.o \
- nessie_mac_test.o nessie_common.o
+ nessie_mac_test.o dbz_strings.o nessie_common.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := hmac-sha256.o sha256-asm.o
$(ALGO_NAME)_TEST_BIN := main-hmac-sha256-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_mac_test.o nessie_common.o cli.o string-extras.o
+ nessie_mac_test.o dbz_strings.o nessie_common.o cli.o string-extras.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := md5.o
$(ALGO_NAME)_TEST_BIN := main-md5-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_hash_test.o nessie_common.o cli.o string-extras.o performance_test.o
+ nessie_hash_test.o dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := md5-asm.o
$(ALGO_NAME)_TEST_BIN := main-md5-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_hash_test.o nessie_common.o cli.o string-extras.o performance_test.o
+ nessie_hash_test.o dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := mugi.o gf256mul.o aes_sbox.o
$(ALGO_NAME)_TEST_BIN := main-mugi-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_stream_test.o nessie_common.o cli.o string-extras.o \
+ nessie_stream_test.o dbz_strings.o nessie_common.o cli.o string-extras.o \
performance_test.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := noekeon_asm.o
$(ALGO_NAME)_TEST_BIN := main-noekeon-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
+ nessie_bc_test.o dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := test nessie
$(ALGO_NAME)_PERFORMANCE_TEST := performance
$(ALGO_NAME)_OBJ := noekeon.o
$(ALGO_NAME)_TEST_BIN := main-noekeon-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
+ nessie_bc_test.o dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := test nessie
$(ALGO_NAME)_PERFORMANCE_TEST := performance
$(ALGO_NAME)_OBJ := noekeon_asm.o omac_noekeon.o memxor.o
$(ALGO_NAME)_TEST_BIN := main-omac-noekeon-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_mac_test.o nessie_common.o cli.o string-extras.o performance_test.o
+ nessie_mac_test.o dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := test nessie
$(ALGO_NAME)_PERFORMANCE_TEST := performance
$(ALGO_NAME)_OBJ := noekeon_asm.o omac_noekeon_C.o memxor.o
$(ALGO_NAME)_TEST_BIN := main-omac-noekeon-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_mac_test.o nessie_common.o cli.o string-extras.o performance_test.o
+ nessie_mac_test.o dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := test nessie
$(ALGO_NAME)_PERFORMANCE_TEST := performance
$(ALGO_NAME)_OBJ := present.o
$(ALGO_NAME)_TEST_BIN := main-present-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
+ nessie_bc_test.o dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := rc5.o
$(ALGO_NAME)_TEST_BIN := main-rc5-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
nessie_bc_test.o \
- nessie_common.o cli.o string-extras.o performance_test.o
+ dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := test nessie
$(ALGO_NAME)_PERFORMANCE_TEST := performance
$(ALGO_NAME)_OBJ := rc6.o
$(ALGO_NAME)_TEST_BIN := main-rc6-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
+ nessie_bc_test.o dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := test nessie
$(ALGO_NAME)_PERFORMANCE_TEST := performance
$(ALGO_NAME)_OBJ := seed-asm.o
$(ALGO_NAME)_TEST_BIN := main-seed-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_bc_test.o nessie_common.o \
+ nessie_bc_test.o dbz_strings.o nessie_common.o \
cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := seed_C.o
$(ALGO_NAME)_TEST_BIN := main-seed-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_bc_test.o nessie_common.o \
+ nessie_bc_test.o dbz_strings.o nessie_common.o \
cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := serpent-asm.o serpent-sboxes-bitslice-asm.o memxor.o
$(ALGO_NAME)_TEST_BIN := main-serpent-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
+ nessie_bc_test.o dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := serpent-sboxes-bitslice-asm.o serpent-asm.o memxor.o
$(ALGO_NAME)_TEST_BIN := main-serpent-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
+ nessie_bc_test.o dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := serpent-asm.o serpent-sboxes-fast.o memxor.o
$(ALGO_NAME)_TEST_BIN := main-serpent-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
+ nessie_bc_test.o dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := serpent-asm.o serpent-sboxes-small.o memxor.o
$(ALGO_NAME)_TEST_BIN := main-serpent-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
+ nessie_bc_test.o dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := serpent.o serpent-sboxes_c.o memxor.o
$(ALGO_NAME)_TEST_BIN := main-serpent-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
+ nessie_bc_test.o dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := sha1-asm.o
$(ALGO_NAME)_TEST_BIN := main-sha1-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_hash_test.o nessie_common.o cli.o string-extras.o \
+ nessie_hash_test.o dbz_strings.o nessie_common.o cli.o string-extras.o \
performance_test.o hfal-basic.o hfal_sha1.o shavs.o dump.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := sha1.o
$(ALGO_NAME)_TEST_BIN := main-sha1-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_hash_test.o nessie_common.o cli.o string-extras.o \
+ nessie_hash_test.o dbz_strings.o nessie_common.o cli.o string-extras.o \
performance_test.o hfal-basic.o hfal_sha1.o shavs.o dump.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := sha256-asm.o
$(ALGO_NAME)_TEST_BIN := main-sha256-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_hash_test.o nessie_common.o cli.o string-extras.o performance_test.o \
+ nessie_hash_test.o dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o \
hfal-basic.o hfal_sha256.o shavs.o dump.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := sha256.o
$(ALGO_NAME)_TEST_BIN := main-sha256-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_hash_test.o nessie_common.o cli.o string-extras.o performance_test.o \
+ nessie_hash_test.o dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o \
hfal-basic.o hfal_sha256.o shavs.o dump.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := shabea.o sha256-asm.o memxor.o
$(ALGO_NAME)_TEST_BIN := main-shabea-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
+ nessie_bc_test.o dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := shacal1_enc.o sha1-asm.o
$(ALGO_NAME)_TEST_BIN := main-shacal1_enc-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
+ nessie_bc_test.o dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := shacal2_enc.o sha256-asm.o
$(ALGO_NAME)_TEST_BIN := main-shacal2_enc-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
+ nessie_bc_test.o dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := skipjack.o
$(ALGO_NAME)_TEST_BIN := main-skipjack-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_bc_test.o nessie_common.o cli.o string-extras.o \
+ nessie_bc_test.o dbz_strings.o nessie_common.o cli.o string-extras.o \
performance_test.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := des.o
$(ALGO_NAME)_TEST_BIN := main-tdes-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
+ nessie_bc_test.o dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := trivium.o
$(ALGO_NAME)_TEST_BIN := main-trivium-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_stream_test.o nessie_common.o cli.o string-extras.o \
+ nessie_stream_test.o dbz_strings.o nessie_common.o cli.o string-extras.o \
performance_test.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := twister-small-asm.o twister-asm.o twister224.o
$(ALGO_NAME)_TEST_BIN := main-twister224-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_hash_test.o nessie_common.o cli.o string-extras.o performance_test.o
+ nessie_hash_test.o dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := twister.o twister-small.o memxor.o gf256mul.o
$(ALGO_NAME)_TEST_BIN := main-twister224-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_hash_test.o nessie_common.o cli.o string-extras.o performance_test.o
+ nessie_hash_test.o dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := twister-asm.o twister-small-asm.o twister256.o
$(ALGO_NAME)_TEST_BIN := main-twister256-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_hash_test.o nessie_common.o cli.o string-extras.o performance_test.o
+ nessie_hash_test.o dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := twister.o twister-small.o memxor.o gf256mul.o
$(ALGO_NAME)_TEST_BIN := main-twister256-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_hash_test.o nessie_common.o cli.o string-extras.o performance_test.o
+ nessie_hash_test.o dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := twister-asm.o twister-big-asm.o twister384.o
$(ALGO_NAME)_TEST_BIN := main-twister384-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_hash_test.o nessie_common.o cli.o string-extras.o performance_test.o
+ nessie_hash_test.o dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := twister.o twister-big.o memxor.o gf256mul.o
$(ALGO_NAME)_TEST_BIN := main-twister384-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_hash_test.o nessie_common.o cli.o string-extras.o performance_test.o
+ nessie_hash_test.o dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := twister-asm.o twister-big-asm.o twister512.o
$(ALGO_NAME)_TEST_BIN := main-twister512-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_hash_test.o nessie_common.o cli.o string-extras.o performance_test.o
+ nessie_hash_test.o dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := twister.o twister-big.o memxor.o gf256mul.o
$(ALGO_NAME)_TEST_BIN := main-twister512-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_hash_test.o nessie_common.o cli.o string-extras.o performance_test.o
+ nessie_hash_test.o dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := xtea-asm.o
$(ALGO_NAME)_TEST_BIN := main-xtea-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
+ nessie_bc_test.o dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
$(ALGO_NAME)_OBJ := xtea.o
$(ALGO_NAME)_TEST_BIN := main-xtea-test.o debug.o uart.o hexdigit_tab.o serial-tools.o \
- nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
+ nessie_bc_test.o dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
$(ALGO_NAME)_NESSIE_TEST := "nessie"
$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
--- /dev/null
+/* dbz_strings.c */
+/*
+ * This file is part of AnonAccess, an access system which can be used
+ * to open door or doing other things with an anonymity featured
+ * account managment.
+ * Copyright (C) 2006, 2007, 2008, 2009 Daniel Otte (daniel.otte@rub.de)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+/*
+ * author: Daniel Otte
+ * email: daniel.otte@rub.de
+ * license: GPLv3
+ *
+ * */
+
+#include <stdint.h>
+#include <string.h>
+#include <avr/pgmspace.h>
+
+/******************************************************************************/
+
+uint8_t dbz_strcount(const char* str){
+ uint8_t ret=1;
+ if(*str=='\0' && *(str+1)=='\0')
+ return 0;
+ for(;;){
+ while(*str++)
+ ;
+ if(*str=='\0')
+ return ret;
+ ++ret;
+ }
+}
+
+/******************************************************************************/
+
+void dbz_splitup(char* dbzstr, char** strings){
+ if(*dbzstr=='\0' && *(dbzstr+1)=='\0')
+ return;
+ *strings++ = dbzstr;
+ for(;;){
+ while(*dbzstr++)
+ ;
+ if(*dbzstr=='\0')
+ return;
+ *strings++ = dbzstr;
+ }
+}
+
+/******************************************************************************/
+
+uint8_t dbz_strcount_P(PGM_P str){
+ uint8_t ret=1;
+ if(pgm_read_byte(str)=='\0' && pgm_read_byte(str+1)=='\0')
+ return 0;
+ for(;;){
+ while(pgm_read_byte(str++))
+ ;
+ if(pgm_read_byte(str)=='\0')
+ return ret;
+ ++ret;
+ }
+}
+
+/******************************************************************************/
+
+void dbz_splitup_P(PGM_P dbzstr, PGM_P* strings){
+ if(pgm_read_byte(dbzstr)=='\0' && pgm_read_byte(dbzstr+1)=='\0')
+ return;
+ *strings++ = dbzstr;
+ for(;;){
+ while(pgm_read_byte(dbzstr++))
+ ;
+ if(pgm_read_byte(dbzstr)=='\0')
+ return;
+ *strings++ = dbzstr;
+ }
+}
+
+/******************************************************************************/
+
--- /dev/null
+/* dbz_strings.h */
+/*
+ * This file is part of AnonAccess, an access system which can be used
+ * to open door or doing other things with an anonymity featured
+ * account managment.
+ * Copyright (C) 2006, 2007, 2008, 2009 Daniel Otte (daniel.otte@rub.de)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+#ifndef DBZ_STRINGS_H_
+#define DBZ_STRINGS_H_
+
+/** \file dbz_strings.h
+ * \author Daniel Otte
+ * \email daniel.otte@rub.de
+ * \license GPLv3 or later
+ * \brief functions for handling of double-zero-terminated strings
+ *
+ */
+
+#include <stdint.h>
+#include <avr/pgmspace.h>
+
+/** \fn uint8_t dbz_strcount(const char* str)
+ * \brief count stings in dbz-terminated string
+ *
+ * Count the single zero terminated string in a
+ * double terminated string
+ * \param str pointer to the double-zero-terminated string
+ */
+uint8_t dbz_strcount(const char* str);
+
+/** \fn void dbz_splitup(char* dbzstr, char** strings)
+ * \brief split up a dbz-terminated string
+ *
+ * Fills an array with pointers to the single terminated string
+ * in a double-zero-terminated string
+ * \param dbzstr pointer to the double-zero-terminated string
+ * \param strings pointer to the array of strings (char pointers)
+ */
+void dbz_splitup(char* dbzstr, char** strings);
+
+/** \fn uint8_t dbz_strcount_P(PGM_P str)
+ * \brief count stings in dbz-terminated string in flash
+ *
+ * Count the single zero terminated string in a
+ * double terminated string which is placed in flash (progmem)
+ * \param str pointer to the double-zero-terminated string in flash
+ */
+uint8_t dbz_strcount_P(PGM_P str);
+
+/** \fn void dbz_splitup_P(PGM_P dbzstr, PGM_P* strings)
+ * \brief split up a dbz-terminated string in flash
+ *
+ * Fills an array with pointers (PGM_P) to the single terminated string
+ * in a double-zero-terminated string which is placed in flash
+ * \param dbzstr pointer to the double-zero-terminated string in flash
+ * \param strings pointer to the array of strings (PGM_P)
+ */
+void dbz_splitup_P(PGM_P dbzstr, PGM_P* strings);
+
+#endif /*DBZ_STRINGS_H_*/
'8','9','A','B',
'C','D','E','F'};
+char hexdigit_tab_uc_P[] PROGMEM =
+ {'0','1','2','3',
+ '4','5','6','7',
+ '8','9','A','B',
+ 'C','D','E','F'};
+
+
+char hexdigit_tab_lc_P[] PROGMEM =
+ {'0','1','2','3',
+ '4','5','6','7',
+ '8','9','a','b',
+ 'c','d','e','f'};
+
#define HEXDIGIT_TAB_H_
extern char hexdigit_tab_P[];
-
+extern char hexdigit_tab_uc_P[];
+extern char hexdigit_tab_lc_P[];
#endif /*HEXDIGIT_TAB_H_*/
#include <avr/pgmspace.h>
#include <stdlib.h> /* utoa() */
#include "nessie_common.h"
-
+#include "hexdigit_tab.h"
#ifdef NESSIE_ALIVE
void nessie_send_alive(void){
}
void nessie_send_alive_a(uint16_t i){
- if((i&63)==63)
+ if((i&31)==0)
NESSIE_PUTC(NESSIE_ALIVE_CHAR);
}
#endif
void nessie_print_block(uint8_t* block, uint16_t blocksize_bit){
- char tab [] = {'0', '1', '2', '3',
- '4', '5', '6', '7',
- '8', '9', 'A', 'B',
- 'C', 'D', 'E', 'F'};
uint16_t i;
for(i=0; i<(blocksize_bit+7)/8; ++i){
- NESSIE_PUTC(tab[(block[i])>>4]);
- NESSIE_PUTC(tab[(block[i])&0xf]);
+ NESSIE_PUTC(pgm_read_byte(hexdigit_tab_uc_P+((block[i])>>4)));
+ NESSIE_PUTC(pgm_read_byte(hexdigit_tab_uc_P+((block[i])&0xf)));
}
}
uint16_t i;
NESSIE_PUTSTR_P(PSTR("\r\n\r\n"
"********************************************************************************\r\n"
- "* micro-crypt - crypto primitives for microcontrolles by Daniel Otte *\r\n"
+ "* AVR-Crypto-Lib - crypto primitives for AVR microcontrolles by Daniel Otte *\r\n"
"********************************************************************************\r\n"
"\r\n"));
NESSIE_PUTSTR_P(PSTR("Primitive Name: "));
#include <string.h>
#include "nessie_hash_test.h"
#include "nessie_common.h"
-#include "uart.h"
+#include "dbz_strings.h"
nessie_hash_ctx_t nessie_hash_ctx;
+#define HASHSIZE_B ((nessie_hash_ctx.hashsize_b+7)/8)
+#define BLOCKSIZE_B (nessie_hash_ctx.blocksize_B)
+
static
-void ascii_hash(char* data, char* desc){
+void ascii_hash_P(PGM_P data, PGM_P desc){
uint8_t ctx[nessie_hash_ctx.ctx_size_B];
- uint8_t hash[(nessie_hash_ctx.hashsize_b+7)/8];
+ uint8_t hash[HASHSIZE_B];
uint16_t sl;
+ uint8_t buffer[BLOCKSIZE_B];
NESSIE_PUTSTR_P(PSTR("\r\n message="));
- NESSIE_PUTSTR(desc);
+ NESSIE_PUTSTR_P(desc);
nessie_hash_ctx.hash_init(ctx);
- sl = strlen(data);
- while(sl>=nessie_hash_ctx.blocksize_B){
- nessie_hash_ctx.hash_next(data, ctx);
- data += nessie_hash_ctx.blocksize_B;
- sl -= nessie_hash_ctx.blocksize_B;
+ sl = strlen_P(data);
+ while(sl>=BLOCKSIZE_B){
+ memcpy_P(buffer, data, BLOCKSIZE_B);
+ nessie_hash_ctx.hash_next(buffer, ctx);
+ data += BLOCKSIZE_B;
+ sl -= BLOCKSIZE_B;
}
- nessie_hash_ctx.hash_last(data, sl*8, ctx);
+ memcpy_P(buffer, data, sl);
+ nessie_hash_ctx.hash_last(buffer, sl*8, ctx);
nessie_hash_ctx.hash_conv(hash, ctx);
nessie_print_item("hash", hash, (nessie_hash_ctx.hashsize_b+7)/8);
}
nessie_print_header(nessie_hash_ctx.name, 0, 0, nessie_hash_ctx.hashsize_b, 0, 0);
/* test set 1 */
- char* challange[8][2]= {
- {"", "\"\" (empty string)"},
- {"a", "\"a\""},
- {"abc", "\"abc\""},
- {"message digest", "\"message digest\""},
- {"abcdefghijklmnopqrstuvwxyz","\"abcdefghijklmnopqrstuvwxyz\""},
- {"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
- "\"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq\""},
- {"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- "abcdefghijklmnopqrstuvwxyz"
- "0123456789" , "\"A...Za...z0...9\""},
- {"1234567890" "1234567890" "1234567890" "1234567890"
- "1234567890" "1234567890" "1234567890" "1234567890",
- "8 times \"1234567890\""}
- };
+ char* challange_dbz= PSTR(
+ "\0"
+ "\"\" (empty string)\0"
+ "a\0"
+ "\"a\"\0"
+ "abc\0"
+ "\"abc\"\0"
+ "message digest\0"
+ "\"message digest\"\0"
+ "abcdefghijklmnopqrstuvwxyz\0"
+ "\"abcdefghijklmnopqrstuvwxyz\"\0"
+ "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq\0"
+ "\"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq\"\0"
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+ "abcdefghijklmnopqrstuvwxyz"
+ "0123456789\0"
+ "\"A...Za...z0...9\"\0"
+ "1234567890123456789012345678901234567890"
+ "1234567890123456789012345678901234567890\0"
+ "8 times \"1234567890\"\0"
+ );
+ PGM_P challange[16];
set=1;
nessie_print_setheader(set);
+ dbz_splitup_P(challange_dbz, challange);
for(i=0; i<8; ++i){
nessie_print_set_vector(set, i);
- ascii_hash(challange[i][0], challange[i][1]);
+ ascii_hash_P(challange[2*i], challange[2*i+1]);
}
nessie_print_set_vector(set, i);
amillion_hash();
#include <stdint.h>
#include <string.h>
#include <stdlib.h>
+#include <avr/pgmspace.h>
#include "nessie_mac_test.h"
#include "nessie_common.h"
+#include "dbz_strings.h"
#include "uart.h"
nessie_mac_ctx_t nessie_mac_ctx;
-#define KEYSIZE_B ((nessie_mac_ctx.keysize_b+7)/8)
-#define MACSIZE_B ((nessie_mac_ctx.macsize_b+7)/8)
+#define KEYSIZE_B ((nessie_mac_ctx.keysize_b+7)/8)
+#define MACSIZE_B ((nessie_mac_ctx.macsize_b+7)/8)
+#define BLOCKSIZE_B (nessie_mac_ctx.blocksize_B)
#define PRINTKEY nessie_print_item("key", key, KEYSIZE_B)
#define PRINTMAC nessie_print_item("MAC", mac, MACSIZE_B)
+
+static uint8_t keyproto[] PROGMEM = {
+ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
+ 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff,
+ 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef };
+
static
-void ascii_mac(char* data, char* desc, uint8_t* key){
+void ascii_mac_P(PGM_P data, PGM_P desc, uint8_t* key){
uint8_t ctx[nessie_mac_ctx.ctx_size_B];
uint8_t mac[MACSIZE_B];
uint16_t sl;
+ uint8_t buffer[BLOCKSIZE_B];
NESSIE_PUTSTR_P(PSTR("\r\n message="));
- NESSIE_PUTSTR(desc);
+ NESSIE_PUTSTR_P(desc);
PRINTKEY;
nessie_mac_ctx.mac_init(ctx, key, nessie_mac_ctx.keysize_b);
- sl = strlen(data);
+ sl = strlen_P(data);
while(sl>nessie_mac_ctx.blocksize_B){
- nessie_mac_ctx.mac_next(ctx, data);
- data += nessie_mac_ctx.blocksize_B;
- sl -= nessie_mac_ctx.blocksize_B;
+ memcpy_P(buffer, data, BLOCKSIZE_B);
+ nessie_mac_ctx.mac_next(ctx, buffer);
+ data += BLOCKSIZE_B;
+ sl -= BLOCKSIZE_B;
}
- nessie_mac_ctx.mac_last(ctx, data, sl*8);
+ memcpy_P(buffer, data, sl);
+ nessie_mac_ctx.mac_last(ctx, buffer, sl*8);
nessie_mac_ctx.mac_conv(mac, ctx);
PRINTMAC;
}
uint8_t ctx[nessie_mac_ctx.ctx_size_B];
uint8_t mac[MACSIZE_B];
uint8_t block[MACSIZE_B];
- 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;
NESSIE_PUTSTR_P(PSTR(" zero bits"));
memset(block, 0, MACSIZE_B);
for(i=0; i<KEYSIZE_B; ++i)
- key[i] = core_key[i%(3*8)];
+ key[i] = pgm_read_byte(&(keyproto[i%(3*8)]));
nessie_print_item("key", key, KEYSIZE_B);
nessie_mac_ctx.mac_init(ctx, key, nessie_mac_ctx.keysize_b);
while(n>nessie_mac_ctx.blocksize_B*8){
nessie_mac_ctx.mac_last(ctx, mac, nessie_mac_ctx.macsize_b);
nessie_mac_ctx.mac_conv(mac, ctx);
NESSIE_SEND_ALIVE_A(i);
- NESSIE_SEND_ALIVE_A(i+32);
}
nessie_print_item("iterated 100000 times", mac, MACSIZE_B);
}
-
void nessie_mac_run(void){
uint16_t i;
uint8_t set;
- uint8_t keyproto[] = {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];
nessie_print_header(nessie_mac_ctx.name, nessie_mac_ctx.keysize_b, 0, 0,
nessie_mac_ctx.macsize_b, 0);
/* test set 1 */
- char* challange[10][2]= {
- {"", "\"\" (empty string)"},
- {"a", "\"a\""},
- {"abc", "\"abc\""},
- {"message digest", "\"message digest\""},
- {"abcdefghijklmnopqrstuvwxyz","\"abcdefghijklmnopqrstuvwxyz\""},
- {"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
- "\"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq\""},
- {"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- "abcdefghijklmnopqrstuvwxyz"
- "0123456789" , "\"A...Za...z0...9\""},
- {"1234567890" "1234567890" "1234567890" "1234567890"
- "1234567890" "1234567890" "1234567890" "1234567890",
- "8 times \"1234567890\""},
- {"Now is the time for all ", "\"Now is the time for all \""},
- {"Now is the time for it", "\"Now is the time for it\""}
- };
+ char* challange_dbz= PSTR(
+ "\0"
+ "\"\" (empty string)\0"
+ "a\0"
+ "\"a\"\0"
+ "abc\0"
+ "\"abc\"\0"
+ "message digest\0"
+ "\"message digest\"\0"
+ "abcdefghijklmnopqrstuvwxyz\0"
+ "\"abcdefghijklmnopqrstuvwxyz\"\0"
+ "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq\0"
+ "\"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq\"\0"
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+ "abcdefghijklmnopqrstuvwxyz"
+ "0123456789\0"
+ "\"A...Za...z0...9\"\0"
+ "1234567890123456789012345678901234567890"
+ "1234567890123456789012345678901234567890\0"
+ "8 times \"1234567890\"\0"
+ "Now is the time for all \0"
+ "\"Now is the time for all \"\0"
+ "Now is the time for it\0"
+ "\"Now is the time for it\"\0"
+ );
set=1;
nessie_print_setheader(set);
for(i=0; i<KEYSIZE_B; ++i){
- key[i] = keyproto[i%sizeof(keyproto)];
+ key[i] = pgm_read_byte(&(keyproto[i%sizeof(keyproto)]));
}
+ PGM_P challange[20];
+ dbz_splitup_P(challange_dbz, challange);
for(i=0; i<10; ++i){
nessie_print_set_vector(set, i);
- ascii_mac(challange[i][0], challange[i][1], key);
+ ascii_mac_P(challange[2*i], challange[2*i+1], key);
}
nessie_print_set_vector(set, i);
amillion_mac(key);
for(i=0; i<KEYSIZE_B; ++i){
- key[i] = keyproto[16+i%8];
+ key[i] = pgm_read_byte(&(keyproto[0x10+i%0x8]));
}
for(i=0; i<10; ++i){
nessie_print_set_vector(set, 11+i);
- ascii_mac(challange[i][0], challange[i][1], key);
+ ascii_mac_P(challange[2*i], challange[2*i+1], key);
}
nessie_print_set_vector(set, 11+i);
amillion_mac(key);
/* test set 2 */
set=2;
for(i=0; i<KEYSIZE_B; ++i){
- key[i] = keyproto[i%sizeof(keyproto)];
+ key[i] = pgm_read_byte(&(keyproto[i%sizeof(keyproto)]));
}
nessie_print_setheader(set);
for(i=0; i<1024; ++i){
nessie_print_set_vector(set, i);
memset(key, 0, KEYSIZE_B);
key[i>>3]=0x80>>(i&0x7);
- ascii_mac("ABC", "\"ABC\"", key);
+ ascii_mac_P(PSTR("ABC"), PSTR("\"ABC\""), key);
}
nessie_print_footer();
}