]> git.cryptolib.org Git - avr-crypto-lib.git/commitdiff
new hash function abstraction layer + shavs + dump util + ...
authorbg <bg@b1d182e4-1ff8-0310-901f-bddb46175740>
Wed, 4 Feb 2009 13:50:15 +0000 (13:50 +0000)
committerbg <bg@b1d182e4-1ff8-0310-901f-bddb46175740>
Wed, 4 Feb 2009 13:50:15 +0000 (13:50 +0000)
216 files changed:
A5_1.c
A5_1.h
Makefile
aes.h
aes128_dec.c
aes128_dec.h
aes128_enc.c
aes128_enc.h
aes192_dec.c
aes192_dec.h
aes192_enc.c
aes192_enc.h
aes256_dec.c
aes256_dec.h
aes256_enc.c
aes256_enc.h
aes_dec-asm.S
aes_dec-asm_faster.S
aes_dec.c
aes_dec.h
aes_enc-asm.S
aes_enc.c
aes_enc.h
aes_invsbox-asm.S
aes_invsbox.h
aes_keyschedule-asm.S
aes_keyschedule.c
aes_keyschedule.h
aes_sbox-asm.S
aes_sbox.h
arcfour-asm.S
arcfour.c
arcfour.h
avr-asm-macros.S
bcal-basic.c
bcal-basic.h
bcal_aes128.c
bcal_aes128.h
bcal_aes192.c
bcal_aes192.h
bcal_aes256.c
bcal_aes256.h
bcal_camellia128.c
bcal_camellia128.h
bcal_cast5.c
bcal_cast5.h
bcal_des.c
bcal_des.h
bcal_present.c
bcal_present.h
bcal_rc5.c
bcal_rc5.h
bcal_rc6.c
bcal_rc6.h
bcal_seed.c
bcal_seed.h
bcal_serpent.c
bcal_serpent.h
bcal_skipjack.c
bcal_skipjack.h
bcal_tdes.c
bcal_tdes.h
bcal_xtea.c
bcal_xtea.h
blockcipher_descriptor.h
camellia-asm.S
camellia.h
camellia128-stub.c
camellia_C.c
cast5-sbox.h
cast5.c
cast5.h
config.h
debug.h
des.c
des.h
entropium.c
entropium.h
gf256mul.S
gf256mul.h
grain.c
grain.h
hashfunction_descriptor.h [new file with mode: 0644]
hfal-basic.c [new file with mode: 0644]
hfal-basic.h [new file with mode: 0644]
hfal_sha256.c [new file with mode: 0644]
hfal_sha256.h [new file with mode: 0644]
hmac-sha1.c
hmac-sha1.h
hmac-sha256.c
hmac-sha256.h
host/get_test.rb
keysize_descriptor.c
keysize_descriptor.h
md5-asm.S
md5.c
md5.h
md5_sbox.h
memxor.S
mkfiles/a5_1.mk
mkfiles/aes.mk
mkfiles/aes_asm_faster.mk
mkfiles/aes_c.mk
mkfiles/arcfour.mk
mkfiles/arcfour_c.mk
mkfiles/camellia.mk
mkfiles/cast5.mk
mkfiles/des.mk
mkfiles/entropium.mk
mkfiles/grain.mk
mkfiles/hmac-sha1.mk
mkfiles/hmac-sha256.mk
mkfiles/md5.mk
mkfiles/md5_asm.mk
mkfiles/noekeon.mk
mkfiles/noekeon_c.mk
mkfiles/omac_noekeon.mk
mkfiles/omac_noekeon_c.mk
mkfiles/present.mk
mkfiles/rc5.mk
mkfiles/rc6.mk
mkfiles/seed.mk
mkfiles/seed_C.mk
mkfiles/serpent-bitslice.mk
mkfiles/serpent_asm_bitslice.mk
mkfiles/serpent_asm_fast.mk
mkfiles/serpent_asm_small.mk
mkfiles/serpent_c.mk
mkfiles/sha1.mk
mkfiles/sha1_c.mk
mkfiles/sha256.mk
mkfiles/sha256_c.mk
mkfiles/shabea.mk
mkfiles/shacal1enc.mk
mkfiles/shacal2enc.mk
mkfiles/skipjack.mk
mkfiles/tdes.mk
mkfiles/trivium.mk
mkfiles/twister224.mk
mkfiles/twister224_c.mk
mkfiles/twister256.mk
mkfiles/twister256_c.mk
mkfiles/twister384.mk
mkfiles/twister384_c.mk
mkfiles/twister512.mk
mkfiles/twister512_c.mk
mkfiles/xtea.mk
mkfiles/xtea_c.mk
noekeon.c
noekeon.h
noekeon_asm.S
noekeon_cbc_enc.S
noekeon_ctr.S
noekeon_ctr.h
omac_noekeon.S
present.c
present.h
rc5.c
rc5.h
rc6.c
rc6.h
seed-asm.S
seed.h
seed_C.c
seed_sbox.h
serpent-asm.S
serpent-sboxes-bitslice-asm.S
serpent-sboxes-bitslice.c
serpent-sboxes-fast.S
serpent-sboxes-small.S
serpent-sboxes.h
serpent-sboxes_c.c
serpent.c
serpent.h
sha1-asm.S
sha1.c
sha1.h
sha256-asm.S
sha256.c
sha256.h
shacal1_enc.c
shacal1_enc.h
shacal2_enc.c
shacal2_enc.h
skipjack.c
skipjack.h
test_src/cli.c
test_src/cli.h
test_src/dump.c [new file with mode: 0644]
test_src/dump.h [new file with mode: 0644]
test_src/main-a5_1-test.c
test_src/main-sha256-test.c
test_src/nessie_bc_test.c
test_src/nessie_common.c
test_src/nessie_common.h
test_src/nessie_hash_test.c
test_src/nessie_mac_test.c
test_src/nessie_stream_test.c
test_src/shavs.c [new file with mode: 0644]
test_src/shavs.h [new file with mode: 0644]
trivium.c
trivium.h
twister-asm.S
twister-big-asm.S
twister-big.c
twister-small-asm.S
twister.c
twister.h
twister224.S
twister256.S
twister384.S
twister512.S
uart.h
xtea-asm.S
xtea.c
xtea.h

diff --git a/A5_1.c b/A5_1.c
index b05edbed83b7b50f5fb5fc822f02e2da889c6648..a07b4846483381d15cd224b07098aa371096017c 100644 (file)
--- a/A5_1.c
+++ b/A5_1.c
@@ -1,6 +1,6 @@
 /* A5_1.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
diff --git a/A5_1.h b/A5_1.h
index 25703d62e4d25facdfb34e9f2c9813fedb302e60..fab01719149c30c7a803ab34367eae887940b2a2 100644 (file)
--- a/A5_1.h
+++ b/A5_1.h
@@ -1,6 +1,6 @@
 /* A5_1.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 830d5e79d259f13921d93afd5a7d416de0900463..c4899a244c8d5033260a743c85cdf10f24e94fe5 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -43,7 +43,7 @@ all: $(foreach algo, $(ALGORITHMS), $(algo)_OBJ)
 
 define MAIN_OBJ_TEMPLATE
 $(2): $(3) $(4)
-       @echo "[ld]: $$@"
+       @echo "[ld] : $$@"
 #      echo $$^
        @$(CC) $(CFLAGS) $(LDFLAGS)$(patsubst %.elf,%.map,$(2)) -o \
        $(2) \
@@ -120,6 +120,15 @@ $(TESTBIN_DIR)%.o: $(TESTSRC_DIR)%.S
        @echo "[as] :  $@"
        @$(CC) $(ASFLAGS) -c -o $@ $<
 
+$(TESTBIN_DIR)%.o: %.c
+       @echo "[gcc]:  $@"
+       @$(CC) $(CFLAGS)  -c -o $@ $<
+
+$(TESTBIN_DIR)%.o: %.S
+       @echo "[as] :  $@"
+       @$(CC) $(ASFLAGS) -c -o $@ $<
+
+
 
 %.o: %.c
        @echo "[gcc]:  $@"
diff --git a/aes.h b/aes.h
index 7a5b0d1f7f18d61ed3abe18b8bb49464ab6bbb94..9d5b77087efed4dad22018ed795eceec26b9ca97 100644 (file)
--- a/aes.h
+++ b/aes.h
@@ -1,6 +1,6 @@
 /* aes.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 153328fcdd83656bd92fb256619bac63a3a70aaf..f3746a76a38b44409e9447ac4884f98939fbeaaa 100644 (file)
@@ -1,6 +1,6 @@
 /* aes128_dec.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 79bb5f1dcb1e36725b9dd374fcbabef0ad0b91e3..97e04d15f3b73a4fa8b0c6efbe65ee97331ad943 100644 (file)
@@ -1,6 +1,6 @@
 /* aes128_dec.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 00329a96711c09e987b19895bfcffff63675fb16..37908546991ce923206a55bac6b5d25fdee5a90a 100644 (file)
@@ -1,6 +1,6 @@
 /* aes128_enc.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index cbdc871d6bcd9904b5f9dba8f7bf5d99471da770..169e5c986f846e974561b70f38550ea20f378ee0 100644 (file)
@@ -1,6 +1,6 @@
 /* aes128_enc.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index a28f830bd29fcc9ffc5e49319faaa5da4312857e..99cc1b1ae56b2f95b68c631824b44bf6345cc2b8 100644 (file)
@@ -1,6 +1,6 @@
 /* aes192_dec.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 0c7ba48c7e986576dca9c8c27f06949e253c8efd..44d237a2eabaf21dcede80b8405f1f1754359637 100644 (file)
@@ -1,6 +1,6 @@
 /* aes192_dec.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 52a7f6237a259f7755d27ebfff4ea5742a17716a..05cb71b3b4f4e0afe98b84fd80f4c5bba3116ecb 100644 (file)
@@ -1,6 +1,6 @@
 /* aes192_enc.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index b6d92c8303538026c9dd72ab6fff8db1d315811b..b82504b1434b11831466cdab9249f7a6155047c9 100644 (file)
@@ -1,6 +1,6 @@
 /* aes192_enc.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index a74d43bd40a3001c28324e5124966191286fd009..9bbb016a1714f60a0fef23e1cc636ccdb65b3625 100644 (file)
@@ -1,6 +1,6 @@
 /* aes256_dec.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 7a6a1a435fc058bbc6fbc975f4e70f8dc55e428f..b8abfe8c6a9b737463d6120c2e1d567c0b69caf4 100644 (file)
@@ -1,6 +1,6 @@
 /* aes256_dec.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 017f7ec2271a62ca7ba614abcf15aaa0b4ced03c..cb2f3ffdbdaf1154cc08028a425c67b9bcab490f 100644 (file)
@@ -1,6 +1,6 @@
 /* aes256_enc.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index e854e63827e44884e218af9d3b3891b780228912..f5ba0fa078744e9744e660a9a9be38ae2ef1762f 100644 (file)
@@ -1,6 +1,6 @@
 /* aes256_enc.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 90e046eabb1a51461ca01b32df33de7da9664df8..78dffad52a2ca265127e135dfe872962f46f0788 100644 (file)
@@ -1,6 +1,6 @@
 /* aes_dec-asm.S */
 /*
-    This file is part of the This file is part of the AVR-Crypto-Lib.
+    This file is part of the AVR-Crypto-Lib.
     Copyright (C) 2008, 2009  Daniel Otte (daniel.otte@rub.de)
 
     This program is free software: you can redistribute it and/or modify
index 8822c32fea87c727be34d0ee4f5716be715ec938..e743678ff21e88d2a80dd4c5daebc974a5601032 100644 (file)
@@ -1,6 +1,6 @@
 /* aes_dec-asm.S */
 /*
-    This file is part of the This file is part of the AVR-Crypto-Lib.
+    This file is part of the AVR-Crypto-Lib.
     Copyright (C) 2008, 2009  Daniel Otte (daniel.otte@rub.de)
 
     This program is free software: you can redistribute it and/or modify
index 72078acd2c81dbe4b2dbf385b98560892c2862d2..8c476de0dbe70d3105eda6412befb75f334e78ba 100644 (file)
--- a/aes_dec.c
+++ b/aes_dec.c
@@ -1,6 +1,6 @@
 /* aes.c */
 /*
-    This file is part of the This file is part of the AVR-Crypto-Lib.
+    This file is part of the AVR-Crypto-Lib.
     Copyright (C) 2008, 2009  Daniel Otte (daniel.otte@rub.de)
 
     This program is free software: you can redistribute it and/or modify
index b033e351e3ac3cf8df89794967e26cfd93cac1f7..631d95377b7f3e933551564facf37c7de50f8865 100644 (file)
--- a/aes_dec.h
+++ b/aes_dec.h
@@ -1,6 +1,6 @@
 /* aes_dec.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 14514f69d83309b7f82a1068dffaa484d4123347..5b46a2abbe6c4dd67d79d2465c5a0b6f71e58557 100644 (file)
@@ -1,6 +1,6 @@
 /* aes_enc-asm.S */
 /*
-    This file is part of the This file is part of the AVR-Crypto-Lib.
+    This file is part of the AVR-Crypto-Lib.
     Copyright (C) 2008, 2009  Daniel Otte (daniel.otte@rub.de)
 
     This program is free software: you can redistribute it and/or modify
index bfb4fea949b86033b328f03217fe11b4b4c8672d..dadf9f45a63d7d875e2bde7441a8741469392278 100644 (file)
--- a/aes_enc.c
+++ b/aes_enc.c
@@ -1,6 +1,6 @@
 /* aes_enc.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index eb315219a76ac5124fdebd0515b03c5ee57c00a1..f3c4dfab1da005beddded25f99e92db4b350999b 100644 (file)
--- a/aes_enc.h
+++ b/aes_enc.h
@@ -1,6 +1,6 @@
 /* aes_enc.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 11dec9600363bbed1477bfcce5fd8d5f4b86a665..67200037a49f602e715f109f10d7a062f2e89a27 100644 (file)
@@ -1,6 +1,6 @@
 /* aes_sbox-asm.S */
 /*
-    This file is part of the This file is part of the AVR-Crypto-Lib.
+    This file is part of the AVR-Crypto-Lib.
     Copyright (C) 2008, 2009  Daniel Otte (daniel.otte@rub.de)
 
     This program is free software: you can redistribute it and/or modify
index fef65a9933716c99f9e726f358d0a1f5f31c8386..42fe9a824d5c435f92569c9caf20a39bfe1f0b46 100644 (file)
@@ -1,6 +1,6 @@
 /* aes_invsbox.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index dada311be3222ccfe298ac979b80caef2061c5c4..c5d69ea5308e8e2bbb0a090ff1377017cd8ee1b9 100644 (file)
@@ -1,6 +1,6 @@
 /* aes_keyschedule-asm */
 /*
-    This file is part of the This file is part of the AVR-Crypto-Lib.
+    This file is part of the AVR-Crypto-Lib.
     Copyright (C) 2008, 2009  Daniel Otte (daniel.otte@rub.de)
 
     This program is free software: you can redistribute it and/or modify
index 05154192a191a6c53af57cc53345c85bc69d0768..9e58eb578320de6ae738aa34cad0b521d487fb3a 100644 (file)
@@ -1,6 +1,6 @@
 /* aes_keyschedule.c */
 /*
-    This file is part of the This file is part of the AVR-Crypto-Lib.
+    This file is part of the AVR-Crypto-Lib.
     Copyright (C) 2008, 2009  Daniel Otte (daniel.otte@rub.de)
 
     This program is free software: you can redistribute it and/or modify
index 109446ac40aa1a39dc5c489018aead75107f7bc1..7d6d840e519f9d573b3e7a2e243daaf897c23671 100644 (file)
@@ -1,6 +1,6 @@
 /* aes_keyschedule.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index f3e99e7b30bd1599bd903e382df87a558c5a100f..e60969875f41d014fee07fa94819ab818e205628 100644 (file)
@@ -1,6 +1,6 @@
 /* aes_sbox-asm.S */
 /*
-    This file is part of the This file is part of the AVR-Crypto-Lib.
+    This file is part of the AVR-Crypto-Lib.
     Copyright (C) 2008, 2009  Daniel Otte (daniel.otte@rub.de)
 
     This program is free software: you can redistribute it and/or modify
index 325fc9cfcfa77b22c1e85034c3aaa7b4b17681b2..5bc03b77e18a6374d5c275e9979ac57614f102f4 100644 (file)
@@ -1,6 +1,6 @@
 /* aes_sbox.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 6c8c351f677f6b68e218fd2857a3a2cee587ff53..1ef8218ce971a608ffaf096959dc40fb63141804 100644 (file)
@@ -1,6 +1,6 @@
 /* arcfour-asm.S */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index bc9a6dd0cbe7a4127ac686a96eddf133e15f0ad4..e07193f2cbfbc9564adff1557c4f78b3b1ed414e 100644 (file)
--- a/arcfour.c
+++ b/arcfour.c
@@ -1,6 +1,6 @@
 /* arcfour.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 15d3ccff8382556466ca5c6a686638004192e97f..3daaf816a19468a84025e892af3da231e0f0d680 100644 (file)
--- a/arcfour.h
+++ b/arcfour.h
@@ -1,6 +1,6 @@
 /* arcfour.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 57007accffe5d57d7fa0a375020839a56511b2dd..0fd325dfc168c6380fe941be23bb90b2971c1ecc 100644 (file)
@@ -1,6 +1,6 @@
 /* avr-asm-macros.S */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index bc31c564adb1dc6641e0b4eaed3ee0e00212abd2..d37f40ab41dc7d3dbea05c3c98f5876886795dfc 100644 (file)
@@ -1,6 +1,6 @@
 /* bcal-basic.c */
 /*
-    This file is part of the This file is part of the AVR-Crypto-Lib.
+    This file is part of the AVR-Crypto-Lib.
     Copyright (C) 2009  Daniel Otte (daniel.otte@rub.de)
 
     This program is free software: you can redistribute it and/or modify
index f4d66e30ee35b2f84d602cef849d5a2ecde42601..4d79ef885ce2d5d3d633aa9085d91b148c7a61e2 100644 (file)
@@ -1,6 +1,6 @@
 /* bcal-basic.h */
 /*
-    This file is part of the This file is part of the AVR-Crypto-Lib.
+    This file is part of the AVR-Crypto-Lib.
     Copyright (C) 2009  Daniel Otte (daniel.otte@rub.de)
 
     This program is free software: you can redistribute it and/or modify
     along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
+#ifndef BCAL_BASIC_H_
+#define BCAL_BASIC_H_
+
 #include <stdlib.h>
 #include <stdint.h>
 #include "blockciper_descriptor.h"
 #include "keysize_descriptor.h"
 
 
+uint8_t bcal_cipher_init(const bcdesc_t* cipher_descriptor,
+                         const void* key, uint16_t keysize, bcgen_ctx_t* ctx);
+void bcal_cipher_free(bcgen_ctx_t* ctx);
+void bcal_cipher_enc(void* block, const bcgen_ctx_t* ctx);
+void bcal_cipher_dec(void* block, const bcgen_ctx_t* ctx);
+
+#endif /* BCAL_BASIC_H_ */
index 5860943ad0eb29c0e28b8168f451c5b2521e7928..8bdde252b616e4209a250c7ff1e95651a4409667 100644 (file)
@@ -1,6 +1,6 @@
 /* bcal_aes128.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index f344c983cc7ba493dff6677e8b6116dd393aa029..ff6568942f5eafa43eeef6d7417a6fb4da466e5b 100644 (file)
@@ -1,6 +1,6 @@
 /* bcal_aes128.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 0935f28690148064161717c16ce3dd3a56909ae3..a74d9a8ffeedc324ea2eff5cb5c00906f21a0e85 100644 (file)
@@ -1,6 +1,6 @@
 /* bcal_aes192.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 255fb099027c4d1994f4cdd502cae7a7b2917982..7abc44e8a9a33a8826ccbce74e392a77da3ea5a7 100644 (file)
@@ -1,6 +1,6 @@
 /* bcal_aes192.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index ac0dd4b09a17e934550d0c2915e22dbeb6ee9ec2..03a507531ebdcf9c0a6d9ca39a88e8ba6d5e19e2 100644 (file)
@@ -1,6 +1,6 @@
 /* bcal_aes256.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 820d739c78235b1d53376c8c7b148927fe4fdd0c..216342b9db5f5abee61190a107ea4b3594080861 100644 (file)
@@ -1,6 +1,6 @@
 /* bcal_aes256.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index fa8098a1a3e88acb5e729488ffb59c11c14a0dff..a891b9dfbc994611b975036c76a6b793bce1f14f 100644 (file)
@@ -1,6 +1,6 @@
 /* bcal_camellia128.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 1de0424cd240d82efc62bee6bb14e62110321e8d..fcd69703b7e11fa8e08de44eb32e3136de6a0b7b 100644 (file)
@@ -1,6 +1,6 @@
 /* bcal_camellia128.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 9e119ab0f36fba332f06cfc8a9bb0ac395fdff9c..bc91297f79c97ed441a360f24645c3fa0a7df5db 100644 (file)
@@ -1,6 +1,6 @@
 /* bcal_cast5.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 6ad5bbd06a6687c6787bf2a52aa16da6aa837411..b5ade13dd5393923861cc894742449daafe9314f 100644 (file)
@@ -1,6 +1,6 @@
 /* bcal_cast5.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 26555e20700760605a4cb55ca1f9681d759ebc0f..601469cae8296f9d08d16569299e8b1902edd104 100644 (file)
@@ -1,6 +1,6 @@
 /* bcal_des.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index c233cbde7978feaedf983a39c344987cdebe534f..571c6c6655a89695dc03b77adc6a878bec3c394f 100644 (file)
@@ -1,6 +1,6 @@
 /* bcal_des.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index b6b7d7777066a6f002b52a1e36ddcf701e29126a..945bd59dda6bea4047004732dca018a884a1e0d0 100644 (file)
@@ -1,6 +1,6 @@
 /* bcal_present.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index b584fba8b9a2f8674fee931bb47206cccb164880..52cabe7b0942105db8eedad89ba1e43e8127e8b8 100644 (file)
@@ -1,6 +1,6 @@
 /* bcal_present.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 73cd086a4de18b8049b1c592e703fd5c5274ab97..97021687056b4712b6fb3d0976de249af5ba41e2 100644 (file)
@@ -1,6 +1,6 @@
 /* bcal_rc5.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 10ab7722d79ca3242ef94b4c230cc4b8e5390e46..6c33993808d1cc0c35e1e6afe8b560ecd0ef8662 100644 (file)
@@ -1,6 +1,6 @@
 /* bcal_rc5.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 8ab036db8c0efc26d538b305f23df816e04b2c2b..e1b98e14614ed489b5f3b83b217a958695c1aa93 100644 (file)
@@ -1,6 +1,6 @@
 /* bcal_rc6.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index f46a765c10ad0ac639bbf0407d371bacd6b34713..9c5745cb6961cb10b8770e52c0376268e5d329ea 100644 (file)
@@ -1,6 +1,6 @@
 /* bcal_rc6.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index edda0c5635ebf334527b3eef8185e086ed59e679..590f027e1a003b80add9058d505fad59a149de3f 100644 (file)
@@ -1,6 +1,6 @@
 /* bcal_seed.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 207190f5311d328c856fd17f1c6f4f94c44c3ff4..9bd1f1899c91ea97f3b445907d9ea276c1519b5a 100644 (file)
@@ -1,6 +1,6 @@
 /* bcal_seed.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index edd4fb712a6761d9915d1cc765a44087d090cb17..df1b5788c1c37f21e20dca5bca03b08e0a461c1d 100644 (file)
@@ -1,6 +1,6 @@
 /* bcal_serpent.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index ec3bec27ed438bb6f5bf4717adb2dd0a0e7261a2..dc3674a16cc32550df85fd091d35f587fda81d2f 100644 (file)
@@ -1,6 +1,6 @@
 /* bcal_serpent.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 6275febaa5d5a635f192e81230ead95f364a375c..09caeadc1480769d49aa304d82f3131a5d8b3686 100644 (file)
@@ -1,6 +1,6 @@
 /* bcal_skipjack.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 5bde0852ab75e4a4c325695abf8b3f3b38e0a157..ba154243baae5c1428cbd788356432fc5afde82c 100644 (file)
@@ -1,6 +1,6 @@
 /* bcal_skipjack.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 01d597bba85eb8e49a66b47e09ddbafd57ebaab2..adecd80e509393f6b37bbd208c7b1dd8e1079eab 100644 (file)
@@ -1,6 +1,6 @@
 /* bcal_tdes.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 5e66faede13370c90fd06ce62352b6cc6481ce29..43ee27f5796b12a7229d24759aa936f69612294b 100644 (file)
@@ -1,6 +1,6 @@
 /* bcal_tdes.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 798d6748d043f8ed85aa05643707bbb868004a42..5902c108119e1ce6eec1e0d5e876791570033fcc 100644 (file)
@@ -1,6 +1,6 @@
 /* bcal_xtea.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index d1ab0e8f6e2012de6fd57c70c5b49ab9f1a2819a..41423861999e07613e67f8e1b96d3aa149137d1b 100644 (file)
@@ -1,6 +1,6 @@
 /* bcal_xtea.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 4dc3c5544f7248b7650d89ca0bfd506af97af61e..a58ad8a05506eb5feb998dc7c714eec3938b9ed7 100644 (file)
@@ -1,11 +1,41 @@
 /* blockcipher_descriptor.h */
+/*
+    This file is part of the AVR-Crypto-Lib.
+    Copyright (C) 2008  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/>.
+*/
+/**
+ * \file               blockcipher_descriptor.h
+ * \author             Daniel Otte 
+ * \date               2009-02-04
+ * 
+ * \license        GPLv3 or later
+ * 
+ */
 
 #ifndef BLOCKCIPHER_DESCRIPTOR_H_
 #define BLOCKCIPHER_DESCRIPTOR_H_
 #include <stdint.h>
 #include <avr/pgmspace.h>
 
+
+#ifndef VOID_FPT
+#define VOID_FPT
 typedef void(*void_fpt)(void);
+#endif
+
 typedef void(*bc_init1_fpt)(void*, void*);
 typedef void(*bc_init2_fpt)(void*, uint16_t,void*);
 typedef void(*bc_enc1_fpt)(void*, void*);
index dc558c437098b151f53c958465c6b6e1ca83e585..f7688931efde6018efd3b79b651af015c0c08c3a 100644 (file)
@@ -1,6 +1,6 @@
 /* camellia-asm.S */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index d55d08f9e600a9889f7278454e73207033183595..760961366dcb2a9af80091f10b74f13371f0d784 100644 (file)
@@ -1,6 +1,6 @@
 /* camellia.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 8cc95de85d5dc0ca75e29844024abfd50ae2015f..95fb5df2833ee0822dbff60e7482f98c01efffc5 100644 (file)
@@ -1,6 +1,6 @@
 /* camellia128-stub.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 0c0e6ac77cec6e7d36e490744e9a426fbb58df56..e6ea17fe59ac33b24b1934710074c91b759aa437 100644 (file)
@@ -1,6 +1,6 @@
 /* camellia_C.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index b948ec02db96066ad196a93d7b076f9979a8a07b..4a8b6bfe44eca238e06bf2b4f9e470a8a33b5880 100644 (file)
@@ -1,6 +1,6 @@
 /* cast5-sbox.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
diff --git a/cast5.c b/cast5.c
index 427b8b10b1e63c82489557a4fae404c2ddc7ae7c..8488a2badfa535c169a559609bf312618dca7f98 100644 (file)
--- a/cast5.c
+++ b/cast5.c
@@ -1,6 +1,6 @@
 /* cast5.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
diff --git a/cast5.h b/cast5.h
index 49965700ed54f3430f544ad6018e6c75fec30dcc..f7d4cb9cf4c1263491ccc0c96b01864097885341 100644 (file)
--- a/cast5.h
+++ b/cast5.h
@@ -1,6 +1,6 @@
 /* cast5.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index a813f10f71d048534167aa1aba631db596065963..21404d4acb8ed341c62207f396034c2a3c7efafe 100644 (file)
--- a/config.h
+++ b/config.h
@@ -1,6 +1,6 @@
 /* config.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
diff --git a/debug.h b/debug.h
index 08de3bf1c1df15221eca5226e820905eec4a03c6..b285dfe57b177470d24c0f1b69536c982428e8a7 100644 (file)
--- a/debug.h
+++ b/debug.h
@@ -1,6 +1,6 @@
 /* debug.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
diff --git a/des.c b/des.c
index 0ad3361cbd6188a99b06229a6717c52eeb45499c..57bc7e30b9c41d86ca530871d9719d41baf043f9 100644 (file)
--- a/des.c
+++ b/des.c
@@ -1,6 +1,6 @@
 /* des.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
diff --git a/des.h b/des.h
index e2e24359d3bb29b41d1581f311a87523a5e81bb9..082de13084e0366579dc9ba595bdd2d5b85b986d 100644 (file)
--- a/des.h
+++ b/des.h
@@ -1,6 +1,6 @@
 /* des.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index ebb642290505a635c30fc47582112008112679b0..ed56607e2bb9af802f19c96095667897e6dbc242 100644 (file)
@@ -1,6 +1,6 @@
 /* entropium.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 00121a1011ae6edfafac6c17c2a59f7f1479ba95..303619d607094030516ba3545db677667e5a9e2a 100644 (file)
@@ -1,6 +1,6 @@
 /* entropium.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 0f9dfa07f402d7f18cc74d6c7c246d8367becb41..b269d3a4a1b760d2d372598bb0cbfdf87de1009c 100644 (file)
@@ -1,6 +1,6 @@
 /* gf256mul.S */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 70d11d697db25d9c0ae2e6f95987094b94b487ef..87f1cb373208ea1867d3d979d2bc29f2de5c22c8 100644 (file)
@@ -1,6 +1,6 @@
 /* gf256mul.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
diff --git a/grain.c b/grain.c
index 895f28b107dc7d01d7a793682f62c94422f0875d..8d30d2266299a367a2f5891daa0220f58642fe2d 100644 (file)
--- a/grain.c
+++ b/grain.c
@@ -1,6 +1,6 @@
 /* grain.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
diff --git a/grain.h b/grain.h
index 0f104429c2951597355e0b75102766506bf1313d..2526fdced5f97ea4c54c8a0a3d5be245185621cf 100644 (file)
--- a/grain.h
+++ b/grain.h
@@ -1,6 +1,6 @@
 /* grain.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
diff --git a/hashfunction_descriptor.h b/hashfunction_descriptor.h
new file mode 100644 (file)
index 0000000..3440cd0
--- /dev/null
@@ -0,0 +1,45 @@
+/* hashfunction_descriptor.h */
+
+#ifndef HASHFUNCTION_DESCRIPTOR_H_
+#define HASHFUNCTION_DESCRIPTOR_H_
+#include <stdint.h>
+#include <avr/pgmspace.h>
+
+#ifndef VOID_FPT
+#define VOID_FPT
+typedef void(*void_fpt)(void);
+#endif
+
+typedef void(*hf_init_fpt)(void*);
+typedef void(*hf_nextBlock_fpt)(void*, const void*);
+typedef void(*hf_lastBlock_fpt)(void*, const void*, uint16_t);
+typedef void(*hf_ctx2hash_fpt)(void*, void*);
+typedef void(*hf_free_fpt)(void*);
+typedef void(*hf_mem_fpt)(void*, void*, uint32_t);
+
+
+#define HFDESC_TYPE_HASHFUNCTION 0x02
+
+typedef struct {
+       uint8_t  type; /* 2 == hashfunction */
+       uint8_t  flags;
+       PGM_P    name;
+       uint16_t ctxsize_B;
+       uint16_t blocksize_b;
+       uint16_t hashsize_b;
+       
+       hf_init_fpt init;
+       hf_nextBlock_fpt  nextBlock;
+       hf_lastBlock_fpt  lastBlock;
+       hf_ctx2hash_fpt   ctx2hash;
+       hf_free_fpt free;
+       hf_mem_fpt mem;
+} hfdesc_t; /* blockcipher descriptor type */
+
+typedef struct{
+       hfdesc_t* desc_ptr;
+       void*     ctx;
+} hfgen_ctx_t;
+
+#endif /* HASHFUNCTION_DESCRIPTOR_H_ */
+
diff --git a/hfal-basic.c b/hfal-basic.c
new file mode 100644 (file)
index 0000000..cd6c026
--- /dev/null
@@ -0,0 +1,83 @@
+/* hfal-basic.c */
+/*
+    This file is part of the AVR-Crypto-Lib.
+    Copyright (C) 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/>.
+*/
+
+#include <avr/pgmspace.h>
+#include "hashfunction_descriptor.h"
+#include "hfal-basic.h"
+#include <stdlib.h>
+
+uint8_t hfal_hash_init(const hfdesc_t* hash_descriptor, hfgen_ctx_t* ctx){
+       hf_init_fpt f;
+       ctx->desc_ptr = (hfdesc_t*)hash_descriptor;
+       if(!(ctx->ctx=malloc(pgm_read_word(&(hash_descriptor->ctxsize_B)))))
+               return 3;
+       f= (hf_init_fpt)pgm_read_word(hash_descriptor->init);
+       f(ctx->ctx);
+       return 0;
+}
+       
+void hfal_hash_nextBlock(hfgen_ctx_t* ctx, const void* block){
+       hf_nextBlock_fpt f;
+       hfdesc_t* x=(ctx->desc_ptr);
+       f =(hf_nextBlock_fpt)pgm_read_word(&(x->nextBlock));
+       f(ctx->ctx, block);
+}
+       
+void hfal_hash_lastBlock(hfgen_ctx_t* ctx, const void* block, uint16_t size){
+       hf_lastBlock_fpt f;
+       hfdesc_t* x=ctx->desc_ptr;
+       f =(hf_lastBlock_fpt)pgm_read_word(&(x->lastBlock));
+       f(ctx->ctx, block, size);
+}
+
+void hfal_hash_ctx2hash(void* dest, hfgen_ctx_t* ctx){
+       hf_ctx2hash_fpt f;
+       hfdesc_t* x=ctx->desc_ptr;
+       f =(hf_ctx2hash_fpt)pgm_read_word(&(x->ctx2hash));
+       f(dest, ctx->ctx);
+}
+
+void hfal_hash_free(hfgen_ctx_t* ctx){
+       hf_free_fpt f;
+       hfdesc_t* x=ctx->desc_ptr;
+       f =(hf_free_fpt)pgm_read_word(&(x->free));
+       if(f)
+               f(ctx->ctx);
+       free(ctx->ctx);
+}
+
+void hfal_hash_mem(const hfdesc_t* hash_descriptor, void* dest, const void* msg, uint32_t length_b){
+       void_fpt f;
+       uint16_t bs,bsb;
+       uint8_t ctx[pgm_read_word(&(hash_descriptor->ctxsize_B))];
+       f=(void_fpt)pgm_read_word(&(hash_descriptor->init));
+       ((hf_init_fpt)f)(ctx);
+       bs=pgm_read_word(&(hash_descriptor->blocksize_b));
+       bsb=bs/8;
+       f=(void_fpt)pgm_read_word(&(hash_descriptor->nextBlock));
+       while(length_b>=bs){
+               ((hf_nextBlock_fpt)f)(ctx, msg);
+               length_b -= bs;
+               msg = (uint8_t*)msg + bsb;
+       }
+       f=(void_fpt)pgm_read_word(&(hash_descriptor->lastBlock));
+       ((hf_lastBlock_fpt)f)(ctx, msg, length_b);
+       f=(void_fpt)pgm_read_word(&(hash_descriptor->ctx2hash));
+       ((hf_ctx2hash_fpt)f)(dest, ctx);
+} 
diff --git a/hfal-basic.h b/hfal-basic.h
new file mode 100644 (file)
index 0000000..08dbb31
--- /dev/null
@@ -0,0 +1,33 @@
+/* hfal-basic.h */
+/*
+    This file is part of the AVR-Crypto-Lib.
+    Copyright (C) 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 HFAL_BASIC_H_
+#define HFAL_BASIC_H_
+
+#include <avr/pgmspace.h>
+#include "hashfunction_descriptor.h"
+
+uint8_t hfal_hash_init(const hfdesc_t* hash_descriptor, hfgen_ctx_t* ctx);
+void hfal_hash_nextBlock(hfgen_ctx_t* ctx, const void* block);
+void hfal_hash_lastBlock(hfgen_ctx_t* ctx, const void* block, uint16_t size);
+void hfal_hash_ctx2hash(void* dest, hfgen_ctx_t* ctx);
+void hfal_hash_free(hfgen_ctx_t* ctx);
+void hfal_hash_mem(const hfdesc_t* hash_descriptor, void* dest, const void* msg, uint32_t length_b);
+
+#endif /* HFAL_BASIC_H_ */
diff --git a/hfal_sha256.c b/hfal_sha256.c
new file mode 100644 (file)
index 0000000..3dac2ac
--- /dev/null
@@ -0,0 +1,49 @@
+/* hfal_sha256.c */
+/*
+    This file is part of the AVR-Crypto-Lib.
+    Copyright (C) 2008  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/>.
+*/
+/**
+ * \file     hfal_sha256.c
+ * \email    daniel.otte@rub.de
+ * \author   Daniel Otte 
+ * \date     2009-02-04
+ * \license  GPLv3 or later
+ * 
+ */
+
+#include <avr/pgmspace.h>
+#include <stdlib.h>
+#include "hashfunction_descriptor.h"
+#include "sha256.h"
+
+const char sha256_str[]   PROGMEM = "SHA-256";
+
+const hfdesc_t sha256_desc PROGMEM = {
+       HFDESC_TYPE_HASHFUNCTION,
+       0,
+       sha256_str,
+       sizeof(sha256_ctx_t),
+       512,
+       256,
+       (hf_init_fpt)sha256_init,
+       (hf_nextBlock_fpt)sha256_nextBlock,
+       (hf_lastBlock_fpt)sha256_lastBlock,
+       (hf_ctx2hash_fpt)sha256_ctx2hash,
+       (hf_free_fpt)NULL,
+       (hf_mem_fpt)NULL
+};
+
diff --git a/hfal_sha256.h b/hfal_sha256.h
new file mode 100644 (file)
index 0000000..bf308a5
--- /dev/null
@@ -0,0 +1,36 @@
+/* hfal_sha256.h */
+/*
+    This file is part of the AVR-Crypto-Lib.
+    Copyright (C) 2008  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/>.
+*/
+/**
+ * \file     hfal_sha256.h
+ * \email    daniel.otte@rub.de
+ * \author   Daniel Otte 
+ * \date     2009-02-04
+ * \license  GPLv3 or later
+ * 
+ */
+
+#ifndef HFAL_SHA256_H_
+#define HFAL_SHA256_H_
+
+#include <avr/pgmspace.h>
+#include "hashfunction_descriptor.h"
+
+extern const hfdesc_t sha256_desc;
+
+#endif /* HFAL_SHA256_H_ */
index d70e4817c4bb250ee836ab80d1dba91d584a383a..45a2afb562729aa273352144c7cee4f2612924fc 100644 (file)
@@ -1,6 +1,6 @@
 /* hmac-sha1.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 5651d8331690f685e1f1fa06980e97c064c03917..2fdb2432cb7b38769751dc9b40a16dcb1d710301 100644 (file)
@@ -1,6 +1,6 @@
 /* hmac-sha256.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index d84f46dd7a323a58ac6e705088a69fd9695f85d0..148fc7d927519b746c9bfff6c5bbcbc1c8503d7b 100644 (file)
@@ -1,6 +1,6 @@
 /* hmac-sha256.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 0334a7d8a4da13c5e76b0de79a3ce963c2764d20..4a3d7f33fa60a36465baac6f725f23f8d46ae880 100644 (file)
@@ -1,6 +1,6 @@
 /* hmac-sha256.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 2e5985cd4ca4aaef5e32c062fb338ab7c11e1e90..f917c331125a10d291fbb4b20c959e3d5b10f4e9 100644 (file)
@@ -2,6 +2,15 @@
 
 require 'serialport'
 
+def read_line
+  s = $sp.gets()
+  if s==nil
+    puts "ERROR: read timeout!\n";
+       return nil
+  end  
+  s.gsub(/\006/, '');  
+end
+
 def readTestVector(param)
   fname=$dir;
   lb="";
@@ -9,11 +18,8 @@ def readTestVector(param)
   set=0;
   vector=0;
   begin
-    ctr=$extended_wait;
-    while((lb=$sp.gets())==nil && ctr>=0)do
-      ctr -= 1;
-    end
-    if (m=/unknown command/.match(lb) || m=/[Ee][Rr]{2}[Oo][Rr]/.match(lb))
+    lb = read_line()
+       if (m=/unknown command/.match(lb) || m=/[Ee][Rr]{2}[Oo][Rr]/.match(lb))
       puts("ERROR: "+lb);
       exit(2);
     end
@@ -24,10 +30,7 @@ def readTestVector(param)
   
   buffer += lb;
   begin
-    ctr=$extended_wait;
-    while((lb=$sp.gets())==nil && ctr>=0)do
-      ctr -= 1;
-    end
+    lb = read_line()
     if(lb==nil)
       return false;
     end
@@ -40,10 +43,7 @@ def readTestVector(param)
       fname+=m[1]+".";
     end
     buffer+=lb;
-    ctr=$extended_wait;
-    while((lb=$sp.gets())==nil && ctr>=0)do
-      ctr -= 1;
-    end
+       lb = read_line();
   end
   if(param!="")
     fname+=param+".";
@@ -65,10 +65,7 @@ def readTestVector(param)
        end
         printf(" %4u", vector);
       end
-      ctr=$extended_wait;
-      while((lb=$sp.gets())==nil && ctr>=0)do
-        ctr -= 1;
-      end
+      lb=read_line();
       if(lb==nil)
         file.close();
         return false;
index 17f4d473ef27a7c778357c676956e4f4dd13a31b..193c07ae217b0f860a9518b1ca8f4be226609362 100644 (file)
@@ -1,6 +1,6 @@
 /* keysize_descriptor.c */
 /*
-    This file is part of the This file is part of the AVR-Crypto-Lib.
+    This file is part of the AVR-Crypto-Lib.
     Copyright (C) 2009  Daniel Otte (daniel.otte@rub.de)
 
     This program is free software: you can redistribute it and/or modify
index aeda6fc39eb9c2d9396766dc63ff8cfaefd71ee5..e256ddfd1f4af321892802043c45308f95163a05 100644 (file)
@@ -1,6 +1,6 @@
 /* keysize_descriptor.h */
 /*
-    This file is part of the This file is part of the AVR-Crypto-Lib.
+    This file is part of the AVR-Crypto-Lib.
     Copyright (C) 2009  Daniel Otte (daniel.otte@rub.de)
 
     This program is free software: you can redistribute it and/or modify
index e48c28d4391408c10e4748661214deeb54cde5a1..469f9ab7535e56efdf255c739fb09e6b4df44547 100644 (file)
--- a/md5-asm.S
+++ b/md5-asm.S
@@ -1,6 +1,6 @@
 /* md5-asm.S */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
diff --git a/md5.c b/md5.c
index 1ecf02aa9e3a8d6046a464cca94038a4371bcfc4..ddad0b9a03af0a933142fc0aa7932679c3d42cd6 100644 (file)
--- a/md5.c
+++ b/md5.c
@@ -1,6 +1,6 @@
 /* md5.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
diff --git a/md5.h b/md5.h
index d76046e68c7e9e0f2a9c8e78ff4a03daf9db76c3..6b65c4a67888aa15118278cf7d149027108e7640 100644 (file)
--- a/md5.h
+++ b/md5.h
@@ -1,6 +1,6 @@
 /* md5.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index c421fad1242cc7706de0d844511be1427bbb85b0..b8ab6361c9bd985c527c5db1181bd135d28b4224 100644 (file)
@@ -1,6 +1,6 @@
 /* md5_sbox.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 3d234f5e56c13c79708625e5f74fed7f25493980..885dad5338a4f4ad65391ed5f367c802736b6224 100644 (file)
--- a/memxor.S
+++ b/memxor.S
@@ -1,6 +1,6 @@
 /* memxor.S */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 76692f0a563db79f9f395ba1f68d50846541ea84..d4617f0e8bc49741e06e96ff51c1283efc5e9063 100644 (file)
@@ -6,7 +6,7 @@ STREAM_CIPHERS += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := A5_1.o
 $(ALGO_NAME)_TEST_BIN := main-a5_1-test.o debug.o uart.o serial-tools.o \
-                         nessie_stream_test.o nessie_common.o cli.o
+                         nessie_stream_test.o nessie_common.o cli.o string-extras.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index b3d8510e9c008134263785be5abed9a9baeea1b5..f9367f61ecc1235559e818ca1e8f119f7d9fca87 100644 (file)
@@ -8,7 +8,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_OBJ      := aes_enc-asm.o aes_dec-asm.o aes_sbox-asm.o aes_invsbox.o  \
                          aes_keyschedule-asm.o  
 $(ALGO_NAME)_TEST_BIN := main-aes-test.o debug.o uart.o serial-tools.o \
-                         nessie_bc_test.o nessie_common.o cli.o performance_test.o
+                         nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index c73be1f6bdf7599c93158d73e7270abd82992195..6a6079b885417d62f89a95a90f9c9ceaf6344e12 100644 (file)
@@ -8,7 +8,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 $(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 serial-tools.o \
-                         nessie_bc_test.o nessie_common.o cli.o performance_test.o
+                         nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index eae1c79694c08056e0ad4e025f5f0b4383eb8cc0..dcd224021b6132b55c152fa5a420cabfc1b66e16 100644 (file)
@@ -10,7 +10,7 @@ $(ALGO_NAME)_OBJ      := aes_enc.o aes_dec.o aes_sbox.o aes_invsbox.o \
                          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 serial-tools.o \
-                         nessie_bc_test.o nessie_common.o cli.o performance_test.o
+                         nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index c1345ae6c66d4374fb76f7c0c26bd73695726879..7e8e33b8df5d5fdf667bec92d11f8d674731306a 100644 (file)
@@ -6,7 +6,7 @@ STREAM_CIPHERS += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := arcfour-asm.o
 $(ALGO_NAME)_TEST_BIN := main-arcfour-test.o debug.o uart.o serial-tools.o \
-                         nessie_stream_test.o nessie_common.o cli.o \
+                         nessie_stream_test.o nessie_common.o cli.o string-extras.o \
                          performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
index 7f7097783ef7225011d4b31305a92736c092976a..b34961421074307a5ef149bc55b57ebd32233521 100644 (file)
@@ -6,7 +6,7 @@ STREAM_CIPHERS += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := arcfour.o
 $(ALGO_NAME)_TEST_BIN := main-arcfour-test.o debug.o uart.o serial-tools.o \
-                         nessie_stream_test.o nessie_common.o cli.o \
+                         nessie_stream_test.o nessie_common.o cli.o string-extras.o \
                          performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
index f6befb095a0799b652cf1ab54e3a653ab9dffdd4..db85f5012f99b769b8ff6c7a750b59e60b554458 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_OBJ      := camellia128-stub.o camellia-asm.o
 $(ALGO_NAME)_TEST_BIN := main-camellia-test.o debug.o uart.o serial-tools.o \
                          nessie_bc_test.o \
-                        nessie_common.o cli.o performance_test.o
+                        nessie_common.o cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index 1b772e4b541c86fe324a2090dd4a813560ba7cb9..dacc1772b09c8cd784befed9a7bf9bc6bfa411fe 100644 (file)
@@ -5,7 +5,7 @@ ALGO_NAME := CAST5
 BLOCK_CIPHERS += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := cast5.o
-$(ALGO_NAME)_TEST_BIN := main-cast5-test.o debug.o uart.o serial-tools.o cli.o\
+$(ALGO_NAME)_TEST_BIN := main-cast5-test.o debug.o uart.o serial-tools.o cli.o string-extras.o\
                          nessie_bc_test.o nessie_common.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
index ccfcc13e59bc4f48378a49d6b431f9cebf443a33..8e2b162c17e9b283eeeed59b2ca7b1d02e300197 100644 (file)
@@ -6,7 +6,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := des.o
 $(ALGO_NAME)_TEST_BIN := main-des-test.o debug.o uart.o serial-tools.o \
-                         nessie_bc_test.o nessie_common.o cli.o performance_test.o
+                         nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index 466d6ae63f43f98b3720fa53b2d625eef986cc7f..2ee6de6e8f5a65092e7aac5ff3fe9e533e250436 100644 (file)
@@ -6,7 +6,7 @@ PRNGS += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := entropium.o sha256-asm.o
 $(ALGO_NAME)_TEST_BIN := main-entropium-test.o debug.o uart.o serial-tools.o \
-                         cli.o performance_test.o
+                         cli.o string-extras.o performance_test.o
                          
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
index 4fbdfcbb5cd035e12eda004a2b34e36785c9b50e..8d83a81a6d2533cce62a3fc4925dc426610230b4 100644 (file)
@@ -6,7 +6,7 @@ STREAM_CIPHERS += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := grain.o
 $(ALGO_NAME)_TEST_BIN := main-grain-test.o debug.o uart.o serial-tools.o \
-                         nessie_stream_test.o nessie_common.o cli.o \
+                         nessie_stream_test.o nessie_common.o cli.o string-extras.o \
                                     performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
index fa2053be27a46432fae39097519d23f3d41c6a24..428177beb3265f950f2d657c2e86be170b78504f 100644 (file)
@@ -5,7 +5,7 @@ ALGO_NAME := HMAC-SHA1
 MACS += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := hmac-sha1.o sha1-asm.o
-$(ALGO_NAME)_TEST_BIN := main-hmac-sha1-test.o debug.o uart.o serial-tools.o cli.o \
+$(ALGO_NAME)_TEST_BIN := main-hmac-sha1-test.o debug.o uart.o serial-tools.o cli.o string-extras.o \
                          nessie_mac_test.o nessie_common.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
index 4bed2fab33173ef757fe80d8d9ce02801a7b2ce2..e7ec3d8172d6ea1726c16669c4deef8dbfd6f0b6 100644 (file)
@@ -6,7 +6,7 @@ MACS += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := hmac-sha256.o sha256-asm.o
 $(ALGO_NAME)_TEST_BIN := main-hmac-sha256-test.o debug.o uart.o serial-tools.o \
-                         nessie_mac_test.o nessie_common.o cli.o
+                         nessie_mac_test.o nessie_common.o cli.o string-extras.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index 8c00703981fcc1c38740415411817a2378d05398..de4498b0f3f2d66264a0b66fa27f50b490deac36 100644 (file)
@@ -6,7 +6,7 @@ HASHES += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := md5.o
 $(ALGO_NAME)_TEST_BIN := main-md5-test.o debug.o uart.o serial-tools.o \
-                         nessie_hash_test.o nessie_common.o cli.o performance_test.o
+                         nessie_hash_test.o nessie_common.o cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index 00a1fdeafefbe09116284cdca187e99567e01da1..a0603b718524f4d1321f595acb8b41cb57dd180d 100644 (file)
@@ -6,7 +6,7 @@ HASHES += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := md5-asm.o
 $(ALGO_NAME)_TEST_BIN := main-md5-test.o debug.o uart.o serial-tools.o \
-                         nessie_hash_test.o nessie_common.o cli.o performance_test.o
+                         nessie_hash_test.o nessie_common.o cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index 0398879dfc3b7b73fad6934762efb620588e02c3..db2252b4265eb4e1f27a8101e9e4cf8f6a18a44c 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := noekeon_asm.o
 $(ALGO_NAME)_TEST_BIN := main-noekeon-test.o debug.o uart.o serial-tools.o \
-                         nessie_bc_test.o nessie_common.o cli.o performance_test.o
+                         nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index 84696fb895dd29d7f9d692195b3b8a37f1a25520..d69c370c9296ef9093bc557e793ae858763aed1b 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := noekeon.o
 $(ALGO_NAME)_TEST_BIN := main-noekeon-test.o debug.o uart.o serial-tools.o \
-                         nessie_bc_test.o nessie_common.o cli.o performance_test.o
+                         nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index 41c5dff4e27da809c213864691964403a7fdf69d..f5a8d0c1cc1bfbdb3e7deff5c39995262e45ef98 100644 (file)
@@ -7,7 +7,7 @@ MACS += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := noekeon_asm.o omac_noekeon.o memxor.o
 $(ALGO_NAME)_TEST_BIN := main-omac-noekeon-test.o debug.o uart.o serial-tools.o \
-                         nessie_mac_test.o nessie_common.o cli.o performance_test.o
+                         nessie_mac_test.o nessie_common.o cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index d14228363030da78dff588b1075fa506bf6eb595..fedd27154d93043eb12ae1a13ef9c04d02b82e22 100644 (file)
@@ -7,7 +7,7 @@ MACS += $(ALGO_NAME)
 
 $(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 serial-tools.o \
-                         nessie_mac_test.o nessie_common.o cli.o performance_test.o
+                         nessie_mac_test.o nessie_common.o cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index b614cc9f9ae5f2a53736d95325481f8e064cd2c9..6a1a614708ca5f0e3f05f84c9b4cd09c0cebf10d 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := present.o
 $(ALGO_NAME)_TEST_BIN := main-present-test.o debug.o uart.o serial-tools.o \
-                         nessie_bc_test.o nessie_common.o cli.o performance_test.o
+                         nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index a64db3d6dc38585fae02acd12694af3f7947583c..d165950e20904acefd1ebb452be21376409b5b6c 100644 (file)
@@ -8,7 +8,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_OBJ      := rc5.o
 $(ALGO_NAME)_TEST_BIN := main-rc5-test.o debug.o uart.o serial-tools.o \
                          nessie_bc_test.o \
-                         nessie_common.o cli.o performance_test.o
+                         nessie_common.o cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index c660d29c0654b72eae5c064a551b9fc91ea51e9b..4f15d03d4bcfdfcfd25c8964dbc1d629dbe40d2a 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := rc6.o
 $(ALGO_NAME)_TEST_BIN := main-rc6-test.o debug.o uart.o serial-tools.o \
-                         nessie_bc_test.o nessie_common.o cli.o performance_test.o
+                         nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index ed6e878f72110c78cc75b4789e811f73a955006a..25723b49d7ec78b33f6b063524b7086434d17ab7 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_OBJ      := seed-asm.o
 $(ALGO_NAME)_TEST_BIN := main-seed-test.o debug.o uart.o serial-tools.o \
                          nessie_bc_test.o nessie_common.o \
-                         cli.o performance_test.o
+                         cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index 3005819819ab1e353f94553179c07f41dcecd02b..970c3dd31bd7207b3e8b613193117bb82945a59f 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_OBJ      := seed_C.o
 $(ALGO_NAME)_TEST_BIN := main-seed-test.o debug.o uart.o serial-tools.o \
                          nessie_bc_test.o nessie_common.o \
-                         cli.o performance_test.o
+                         cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index efd8bf6e8a70d9412325b83fd5aab10ad12ac5e2..4fa8936c1062060a651f21191dbf75192cd3b3ca 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 
 $(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 serial-tools.o \
-                         nessie_bc_test.o nessie_common.o cli.o performance_test.o
+                         nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index ddfc41819b67ad196490799206b8519de7ec0994..731bf7b5893978c8b3c576d30e58d560f31b0356 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 
 $(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 serial-tools.o \
-                         nessie_bc_test.o nessie_common.o cli.o performance_test.o
+                         nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index 58258e78b38d856baf5deccf917d3f2837b2a2fc..b73460ff7d4ca0048c80eeae4509587b420bc40b 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := serpent-asm.o serpent-sboxes-fast.o memxor.o
 $(ALGO_NAME)_TEST_BIN := main-serpent-test.o debug.o uart.o serial-tools.o \
-                         nessie_bc_test.o nessie_common.o cli.o performance_test.o
+                         nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index c696e2e9afb96f8199da39bb04015d0be9d8f70e..c0f550906d3e3908ef5fcac3af329b2f620e0424 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := serpent-asm.o serpent-sboxes-small.o memxor.o
 $(ALGO_NAME)_TEST_BIN := main-serpent-test.o debug.o uart.o serial-tools.o \
-                         nessie_bc_test.o nessie_common.o cli.o performance_test.o
+                         nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index 94d05e68fc33267d74308dd223ef0297c65943c6..bc2411f05cc2c4ec65b0d9e0113e0a627bf97b93 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := serpent.o serpent-sboxes_c.o memxor.o
 $(ALGO_NAME)_TEST_BIN := main-serpent-test.o debug.o uart.o serial-tools.o \
-                         nessie_bc_test.o nessie_common.o cli.o performance_test.o
+                         nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index 8bdcef8b3b67ce5984489255055bc2da840ad291..13e4180ed56ae557bedc37ee8cf23b01cd8dd9fc 100644 (file)
@@ -6,7 +6,7 @@ HASHES += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := sha1-asm.o
 $(ALGO_NAME)_TEST_BIN := main-sha1-test.o debug.o uart.o serial-tools.o \
-                         nessie_hash_test.o nessie_common.o cli.o performance_test.o
+                         nessie_hash_test.o nessie_common.o cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index 4dce2d9773116e574b292dd62eda666fcb52b427..5ee92edab2e153e5e04a3574cf3324f879bb9708 100644 (file)
@@ -6,7 +6,7 @@ HASHES += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := sha1.o
 $(ALGO_NAME)_TEST_BIN := main-sha1-test.o debug.o uart.o serial-tools.o \
-                         nessie_hash_test.o nessie_common.o cli.o \
+                         nessie_hash_test.o nessie_common.o cli.o string-extras.o \
                         performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
index d1dd3f5119e55ef952de2454dcbfca08d1ea4266..ef14ba450967893c35a9c06ba38434e26cd96b74 100644 (file)
@@ -6,7 +6,8 @@ HASHES += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := sha256-asm.o
 $(ALGO_NAME)_TEST_BIN := main-sha256-test.o debug.o uart.o serial-tools.o \
-                         nessie_hash_test.o nessie_common.o cli.o performance_test.o
+                         nessie_hash_test.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"
 
index 0a85c4f30296e70bc2dbfee7881acabb95092401..90e55a1a8df8a214c7f52a7d1f12948a33f2381a 100644 (file)
@@ -6,7 +6,7 @@ HASHES += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := sha256.o
 $(ALGO_NAME)_TEST_BIN := main-sha256-test.o debug.o uart.o serial-tools.o \
-                         nessie_hash_test.o nessie_common.o cli.o performance_test.o
+                         nessie_hash_test.o nessie_common.o cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index 1b55cbde3bcd8b158b0d589b8d2ce34901b5affa..eb9ff266f0e014be959a942c1b3873f7b04ab311 100644 (file)
@@ -6,7 +6,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := shabea.o sha256-asm.o memxor.o
 $(ALGO_NAME)_TEST_BIN := main-shabea-test.o debug.o uart.o serial-tools.o \
-                         nessie_bc_test.o nessie_common.o cli.o performance_test.o
+                         nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index 56087b7d51bbcd3bbb10a0f1057140a256e32303..b4a99ab60db05ceb5531b7f3da788a6012df0a7a 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := shacal1_enc.o sha1-asm.o
 $(ALGO_NAME)_TEST_BIN := main-shacal1_enc-test.o debug.o uart.o serial-tools.o \
-                         nessie_bc_test.o nessie_common.o cli.o performance_test.o 
+                         nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o 
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index d82b28273858f7929501abb71b2665d30698b242..77f03345f24216d2c90d650d168f11a00544953e 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := shacal2_enc.o sha256-asm.o
 $(ALGO_NAME)_TEST_BIN := main-shacal2_enc-test.o debug.o uart.o serial-tools.o \
-                         nessie_bc_test.o nessie_common.o cli.o performance_test.o 
+                         nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o 
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index f82cd21fd600b5b1b647604c55865bc81859b45a..e0db90b698486223c1a3736f141fe39ffabb5d0e 100644 (file)
@@ -6,7 +6,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := skipjack.o
 $(ALGO_NAME)_TEST_BIN := main-skipjack-test.o debug.o uart.o serial-tools.o \
-                         nessie_bc_test.o nessie_common.o cli.o \
+                         nessie_bc_test.o nessie_common.o cli.o string-extras.o \
                         performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
index f151aa809a5c45a76ec9d18ee5f95236a327edd4..898b7c2807eb655e9cf5cae56f3be13c228c52c7 100644 (file)
@@ -6,7 +6,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := des.o
 $(ALGO_NAME)_TEST_BIN := main-tdes-test.o debug.o uart.o serial-tools.o \
-                         nessie_bc_test.o nessie_common.o cli.o performance_test.o
+                         nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index 1c65bd8ced943e6e13221f88252cca53ddc604e8..79cfeb6f38fbcf9d505d8a39e8d012e9562dc727 100644 (file)
@@ -6,7 +6,7 @@ STREAM_CIPHERS += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := trivium.o
 $(ALGO_NAME)_TEST_BIN := main-trivium-test.o debug.o uart.o serial-tools.o \
-                         nessie_stream_test.o nessie_common.o cli.o \
+                         nessie_stream_test.o nessie_common.o cli.o string-extras.o \
                          performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
index 18addb5622e60f923a522a47c5e913fae3766163..65b7851ff79a4c600c227c44915196a53130bc5c 100644 (file)
@@ -6,7 +6,7 @@ HASHES += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := twister-small-asm.o twister-asm.o twister224.o 
 $(ALGO_NAME)_TEST_BIN := main-twister224-test.o debug.o uart.o serial-tools.o \
-                         nessie_hash_test.o nessie_common.o cli.o performance_test.o
+                         nessie_hash_test.o nessie_common.o cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index fd4945c289515cc55d0f77a7ef0c90e00f7b2b08..5e5f0e7c72c7781c608af254122f1e583b0b7fc9 100644 (file)
@@ -6,7 +6,7 @@ HASHES += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := twister.o twister-small.o memxor.o gf256mul.o
 $(ALGO_NAME)_TEST_BIN := main-twister224-test.o debug.o uart.o serial-tools.o \
-                         nessie_hash_test.o nessie_common.o cli.o performance_test.o
+                         nessie_hash_test.o nessie_common.o cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index 260bb24ee71036d151860962c6dff78652d0acf4..a95aeaa33b07824ad98978db25b1f1c9e7cf97c8 100644 (file)
@@ -6,7 +6,7 @@ HASHES += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := twister-asm.o twister-small-asm.o twister256.o  
 $(ALGO_NAME)_TEST_BIN := main-twister256-test.o debug.o uart.o serial-tools.o \
-                         nessie_hash_test.o nessie_common.o cli.o performance_test.o
+                         nessie_hash_test.o nessie_common.o cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index 0ea4df198886a528d39bfcd669bd1c16f43a026e..e9cac663f2dd08de889ffc0838a024eb26ec57bb 100644 (file)
@@ -6,7 +6,7 @@ HASHES += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := twister.o twister-small.o memxor.o gf256mul.o
 $(ALGO_NAME)_TEST_BIN := main-twister256-test.o debug.o uart.o serial-tools.o \
-                         nessie_hash_test.o nessie_common.o cli.o performance_test.o
+                         nessie_hash_test.o nessie_common.o cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index dacd8f1955aebd4ee12a29c3bb47c4a53762856a..ef04aa8c75912c09c2104c9610b10fed291b5887 100644 (file)
@@ -6,7 +6,7 @@ HASHES += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := twister-asm.o twister-big-asm.o twister384.o
 $(ALGO_NAME)_TEST_BIN := main-twister384-test.o debug.o uart.o serial-tools.o \
-                         nessie_hash_test.o nessie_common.o cli.o performance_test.o
+                         nessie_hash_test.o nessie_common.o cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index d478f5ef566113fd59c65567f01db89cea2c6d16..247d4d9821963d2c01687fcd888f8e139f195e73 100644 (file)
@@ -6,7 +6,7 @@ HASHES += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := twister.o twister-big.o memxor.o gf256mul.o
 $(ALGO_NAME)_TEST_BIN := main-twister384-test.o debug.o uart.o serial-tools.o \
-                         nessie_hash_test.o nessie_common.o cli.o performance_test.o
+                         nessie_hash_test.o nessie_common.o cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index cfbc341b4e40ac57e8f363bff4191075c3dad539..0d7455b164ef6db85cac9983faffc41c72496766 100644 (file)
@@ -6,7 +6,7 @@ HASHES += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := twister-asm.o twister-big-asm.o twister512.o
 $(ALGO_NAME)_TEST_BIN := main-twister512-test.o debug.o uart.o serial-tools.o \
-                         nessie_hash_test.o nessie_common.o cli.o performance_test.o
+                         nessie_hash_test.o nessie_common.o cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index e13306fff4d6e201c9e7d72422d898071914a7c4..07ce27a1a2dcde734b243fce6c7a4fea579f0941 100644 (file)
@@ -6,7 +6,7 @@ HASHES += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := twister.o twister-big.o memxor.o gf256mul.o
 $(ALGO_NAME)_TEST_BIN := main-twister512-test.o debug.o uart.o serial-tools.o \
-                         nessie_hash_test.o nessie_common.o cli.o performance_test.o
+                         nessie_hash_test.o nessie_common.o cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index 0128f864c9f9190c0c0ef0be34a03dd4aab1dacc..bfe5f17c30c89fbe01579cdaa37dcb5c45e1c63d 100644 (file)
@@ -6,7 +6,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := xtea-asm.o
 $(ALGO_NAME)_TEST_BIN := main-xtea-test.o debug.o uart.o serial-tools.o \
-                         nessie_bc_test.o nessie_common.o cli.o performance_test.o
+                         nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index 6f10d767fa09be0a0acca2a57fdb7882127f79a6..6d88540da01c76a1d36648dafdae7f1568e02995 100644 (file)
@@ -6,7 +6,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 
 $(ALGO_NAME)_OBJ      := xtea.o
 $(ALGO_NAME)_TEST_BIN := main-xtea-test.o debug.o uart.o serial-tools.o \
-                         nessie_bc_test.o nessie_common.o cli.o performance_test.o
+                         nessie_bc_test.o nessie_common.o cli.o string-extras.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index fe720a6bb005651aedbcefaf805cdf83d042bf1a..4b8075510065089374b8a0ce975197ba4db375d2 100644 (file)
--- a/noekeon.c
+++ b/noekeon.c
@@ -1,6 +1,6 @@
 /* noekeon.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index c6cc9e88004b4d0904cf02d6a1082c16e98cff57..c637ce20a435836a2840e5ed3b201c74cb82655b 100644 (file)
--- a/noekeon.h
+++ b/noekeon.h
@@ -1,6 +1,6 @@
 /* noekeon.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 7fc05069005d2acb79a2c847609017bffadaea0a..b0a2a16f93da12843c5d39a022103f04f5781c01 100644 (file)
@@ -1,6 +1,6 @@
 /* noekeon_asm.S */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index f914544e3beb2af242b8a13d6cfc8b432bd5f5bb..3b7d6907c1741c6f4e272833e1b3cf37ae975985 100644 (file)
@@ -1,6 +1,6 @@
 /* noekeon_cbc_enc.S */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 3c2a60fd34770459a593d2d06b1473e9305c13dc..bf366baa2872abdda68ae32182d886e8b1066ce9 100644 (file)
@@ -1,6 +1,6 @@
 /* noekeon_ctr.S */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 259ec079a5ead7cf8c116447a76e99819c573eec..d7a601f7d374be5541a1542a02589c44246d24e4 100644 (file)
@@ -1,6 +1,6 @@
 /* noekeon_ctr.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index fc3984eaf3462bc4e759d1ca1024d4f8b52a2e42..598280b6882afb754ee64662ce896e72ac6c60f8 100644 (file)
@@ -1,6 +1,6 @@
 /* noekeon_omac.S */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 88d30793d17422a6100ba82db5af7797b84b506a..03792c5a8fb232918799653630d0f8f05fef067a 100644 (file)
--- a/present.c
+++ b/present.c
@@ -1,6 +1,6 @@
 /* present.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 1a43ddcbdefcbbe12edd0b1d530ee0968b6810fc..320a1d859563a29f6249b359c8974a13693f3f3d 100644 (file)
--- a/present.h
+++ b/present.h
@@ -1,6 +1,6 @@
 /* present.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
diff --git a/rc5.c b/rc5.c
index c3f1820c2c702692153194138dfad74e507bfa91..441f61d21ef95ea009ce29aebb4e6f689cd7dbe8 100644 (file)
--- a/rc5.c
+++ b/rc5.c
@@ -1,6 +1,6 @@
 /* rc5.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
diff --git a/rc5.h b/rc5.h
index da3698dbef830a325b7420bc7a44118fdb80b1ba..2a0182c51216428ed79fcf3c934350504773f07c 100644 (file)
--- a/rc5.h
+++ b/rc5.h
@@ -1,6 +1,6 @@
 /* rc5.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
diff --git a/rc6.c b/rc6.c
index 49b72eca98778b0cf03ce5baab81d5782c02a699..ea4d7bb15628e4fb62ff9d0acf054f9edf37cef5 100644 (file)
--- a/rc6.c
+++ b/rc6.c
@@ -1,6 +1,6 @@
 /* rc6.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
diff --git a/rc6.h b/rc6.h
index 0ee4eaf217984e587cfb4a5febac7b07d210c0bc..429a1d39bd8942e2ca252393b5e1223bd8f3c7a0 100644 (file)
--- a/rc6.h
+++ b/rc6.h
@@ -1,6 +1,6 @@
 /* rc6.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index cf2d7a51e48420f998acb84f859c9b9e45316a03..84866c382098f266ed06bbb318bec5b2035d123e 100644 (file)
@@ -1,6 +1,6 @@
 /* seed-asm.S */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
diff --git a/seed.h b/seed.h
index 512863247b29ff5d1a34f2747b84903da6b85e35..fed393f7c4f9f6dff7df78f2eeba4dafd905a272 100644 (file)
--- a/seed.h
+++ b/seed.h
@@ -1,6 +1,6 @@
 /* seed.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index e93da31165a80f80637f3cb776e88081879f23fe..4460fa5e780626e90eb898c5656c9c8b44d958fa 100644 (file)
--- a/seed_C.c
+++ b/seed_C.c
@@ -1,6 +1,6 @@
 /* seed_C.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 0c79bf082cf2bd7228681670dd4c0e938d4fdb39..99379130ba68905f55caadc186ef044c09563563 100644 (file)
@@ -1,6 +1,6 @@
 /* seed_sbox.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 6569fb7510d0f5c6455ee0eb6f8866d0cabb4d17..f5f7cc5acf414c55b32980850e0a4d442efbfc78 100644 (file)
@@ -1,6 +1,6 @@
 /* serpent_asm.S */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 4f0fcc6fd39435654d5437e0e69598642c9a8cc3..4e0d7db01b6fd5bb06bd2dfbba14efef297a49bd 100644 (file)
@@ -1,6 +1,6 @@
 /* serpent-sboxes-bitslice.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index c18f116f903a3fb301a1b30589a94877b00ce445..96f9c682ee2825c7dfb822f35a483d208556c42e 100644 (file)
@@ -1,6 +1,6 @@
 /* serpent-sboxes-bitslice.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 047d82ac36c43190334eb58217ddf7a27d9aff90..9242272090267a6958da7d1358fe708339d2dc5c 100644 (file)
@@ -1,6 +1,6 @@
 /* serpent-sboxes-fast.S */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 76aafdb48d66dc00349ffc451692ce663583e338..028fd77e779340ea96df7ab5b9f6c58f90da52a8 100644 (file)
@@ -1,6 +1,6 @@
 /* serpent_sboxes.S */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 33848105687e1674e9257d52b846b73844ca7f53..c391edc6163c71983844f596471a59255f87fc0d 100644 (file)
@@ -1,6 +1,6 @@
 /* serpent-sboxes.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 36e7fdf0ac1ff7de05878ba2e86e2514d7ab4f37..3a59969cee744497ff7074679db388d496faaaab 100644 (file)
@@ -1,6 +1,6 @@
 /* serpent-sboxes.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 6506b2ad2b70495db93c40054bbf997ecf1bf2d3..40ccecd4ac58f726cea41b8bc90d8b35a2b70ac1 100644 (file)
--- a/serpent.c
+++ b/serpent.c
@@ -1,6 +1,6 @@
 /* serpent.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 19b88160168e8b86ebdef7832a25d0acc5aded89..84e4a87c265714a2be10509879712076093350a3 100644 (file)
--- a/serpent.h
+++ b/serpent.h
@@ -1,6 +1,6 @@
 /* serpent.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 5d0a2410c93d361a72fef65d89e92d04745df782..5d6dd31d29871fa056b94ee852c73be7a900fdf6 100644 (file)
@@ -1,6 +1,6 @@
 /* sha1-asm.S */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
diff --git a/sha1.c b/sha1.c
index 045af10a2e3098257c06220e910952dfbc36302d..1dd6acf80b344dc90a7e204533c71f8001e010be 100644 (file)
--- a/sha1.c
+++ b/sha1.c
@@ -1,6 +1,6 @@
 /* sha1.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
diff --git a/sha1.h b/sha1.h
index 895ac49371dd12d09283ea2d89182d6952192814..c993741ed924cd51c1752386a70b7a011d0d154b 100644 (file)
--- a/sha1.h
+++ b/sha1.h
@@ -1,6 +1,6 @@
 /* sha1.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index a9f7c431956721fbbcc783d894dad516ebcc2f76..b099bddc42d5b0c1fae75f607a016f0396f56737 100644 (file)
@@ -1,6 +1,6 @@
 /* sha256-asm.S */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index f310f7c7ec23361073ff93176400113e1265c118..f654968a906818d6b8e878cc0f381880b65ed68a 100644 (file)
--- a/sha256.c
+++ b/sha256.c
@@ -1,6 +1,6 @@
 /* sha256.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index dad33236f8d116d00da129b022fd4b80aa33ec50..24960a3a43d9325d3cbb01ea15c4f2a7e6b31684 100644 (file)
--- a/sha256.h
+++ b/sha256.h
@@ -1,6 +1,6 @@
 /* sha256.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 1d5c6c9b4c41f1faa1e2685dbf1725c351d14266..634f18d3d42e1375d897f2353db9de57bfccf4d0 100644 (file)
@@ -1,6 +1,6 @@
 /* shacal1_enc.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index b5f81b485180eb07215ae06ff4c6611885b15192..e1bdd989e2c33b9ed3c620ae2d1a9976d787f583 100644 (file)
@@ -1,6 +1,6 @@
 /* shacal1_enc.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 96e32d81dcf7724fed90d6a43d6ffa103bf9e79b..b5380e57f3f4fefb6d54877266be7752e00e6600 100644 (file)
@@ -1,6 +1,6 @@
 /* shacal2_enc.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 56067ade8caab2f2b48cb0ffbe0b5ebf2082e2eb..ffa277c72c05ef30c84bb8f3f8bdcc26543d1c4e 100644 (file)
@@ -1,6 +1,6 @@
 /* shacal2_enc.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index ce16355713cf7f17f771e7b596ab8447d79c64b4..04eb437a00edb18d2bc77ffae2cf5ffa974f4c5a 100644 (file)
@@ -1,6 +1,6 @@
 /* skipjack.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 4b4372aa6932a73e74add8efc10ae2792f6fc361..00f033d677f3d493e9e8d9a522b3c621c4d2e839 100644 (file)
@@ -1,6 +1,6 @@
 /* skipjack.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 35f0aa2eb2b3e74633260f8e37596e5af0531d31..5fe4c8eac3e6257aa92b50c1d729fa22735a8b3e 100644 (file)
@@ -31,6 +31,7 @@
 #include <ctype.h>
 #include <string.h>
 #include <avr/pgmspace.h>
+#include "string-extras.h"
 #include "cli.h"
 #include "config.h"
 
@@ -38,6 +39,29 @@ cli_rx_fpt cli_rx = NULL;
 cli_tx_fpt cli_tx = NULL;
 uint8_t cli_echo=1;
 
+void cli_putc(char c){
+       if(cli_tx)
+               cli_tx(c);
+}
+
+uint16_t cli_getc(void){
+       if(cli_rx)
+               return cli_rx();
+       return ((uint16_t)-1);
+}
+
+
+uint16_t cli_getc_cecho(void){
+       char c;
+       if(cli_rx){
+               c = cli_rx();
+               if(cli_tx && cli_echo)
+                       cli_tx(c);
+               return c;
+       }
+       return ((uint16_t)-1);
+}
+
 void cli_putstr(char* s){
        if(!cli_tx)
                return;
@@ -71,6 +95,21 @@ void cli_hexdump(void* data, uint16_t length){
        }
 }
 
+void cli_hexdump2(void* data, uint16_t length){
+       char hex_tab[] = {'0', '1', '2', '3', 
+                         '4', '5', '6', '7', 
+                                         '8', '9', 'A', 'B', 
+                                         'C', 'D', 'E', 'F'};
+       if(!cli_tx)
+               return;
+       while(length--){
+               cli_tx(hex_tab[(*((uint8_t*)data))>>4]);
+               cli_tx(hex_tab[(*((uint8_t*)data))&0xf]);
+               cli_tx(' ');
+               data = (uint8_t*)data +1;
+       }
+}
+
 static
 void cli_auto_help(uint16_t maxcmdlength, PGM_VOID_P cmdlist){
        cmdlist_entry_t item;
@@ -84,7 +123,7 @@ void cli_auto_help(uint16_t maxcmdlength, PGM_VOID_P cmdlist){
                item.cmd_name      = (void*)pgm_read_word(cmdlist+0);
                item.cmd_param_str = (void*)pgm_read_word(cmdlist+2);
                item.cmd_function  = (void_fpt)pgm_read_word(cmdlist+4);
-               cmdlist = (uint8_t*)cmdlist+6;
+               cmdlist = (uint8_t*)cmdlist+CMDLIST_ENTRY_SIZE;
                if(item.cmd_name==NULL){
                        return;
                }
@@ -109,15 +148,8 @@ void cli_auto_help(uint16_t maxcmdlength, PGM_VOID_P cmdlist){
        }
 }
 
-static
-uint16_t firstword_length(char* s){
-       uint16_t ret=0;
-       while(isalnum(*s++))
-               ret++;
-       return ret; 
-}
-
 void echo_ctrl(char* s){
+       s = strstrip(s);
        if(s==NULL || *s=='\0'){
                cli_putstr_P(PSTR("\r\necho is "));
                cli_putstr_P(cli_echo?PSTR("on"):PSTR("off"));
@@ -156,7 +188,7 @@ int8_t search_and_call(char* cmd, uint16_t maxcmdlength, PGM_VOID_P cmdlist){
                item.cmd_name =      (void*)pgm_read_word(cmdlist+0);
                item.cmd_param_str = (void*)pgm_read_word(cmdlist+2);
                item.cmd_function =  (void_fpt)pgm_read_word(cmdlist+4);
-               cmdlist = (uint8_t*)cmdlist+6;
+               cmdlist = (uint8_t*)cmdlist+CMDLIST_ENTRY_SIZE;
        }while(item.cmd_name!=NULL && strcmp_P(fw, item.cmd_name));
        if(item.cmd_name==NULL){
                cli_auto_help(maxcmdlength, cmdlist_orig);
@@ -188,7 +220,7 @@ uint16_t max_cmd_length(PGM_VOID_P cmdlist){
        char* str;
        for(;;){
                str = (char*)pgm_read_word(cmdlist);
-               cmdlist = (uint8_t*)cmdlist + 6;
+               cmdlist = (uint8_t*)cmdlist + CMDLIST_ENTRY_SIZE;
                if(str==NULL)
                        return ret;
                t = strlen_P(str);
@@ -197,18 +229,6 @@ uint16_t max_cmd_length(PGM_VOID_P cmdlist){
        }
 }
 
-uint16_t stridentcnt_P(char* a, PGM_P b){
-       uint16_t i=0;
-       char c;
-       for(;;){
-               c = pgm_read_byte(b++);
-               if(*a != c || c=='\0')
-                       return i;
-               i++;
-               a++;
-       }
-}
-
 uint8_t cli_completion(char* buffer, uint16_t maxcmdlength, PGM_VOID_P cmdlist){
        uint8_t i=0;
        char ref[maxcmdlength+1];
@@ -216,14 +236,14 @@ uint8_t cli_completion(char* buffer, uint16_t maxcmdlength, PGM_VOID_P cmdlist){
        ref[0]='\0';
        /* check if we are behind the first word */
        while(buffer[i]){
-               if(!isalnum(buffer[i++]))
+               if(!isgraph(buffer[i++]))
                        return 0;
        }
        for(;;){
                itemstr = (char*)pgm_read_word(cmdlist);
                if(itemstr==NULL)
                        break;
-               cmdlist = (uint8_t*)cmdlist +6;
+               cmdlist = (uint8_t*)cmdlist +CMDLIST_ENTRY_SIZE;
                if(!strncmp_P(buffer, itemstr, i)){
                        if(!ref[0]){
                                strcpy_P(ref, itemstr);
@@ -248,7 +268,7 @@ void cli_option_listing(char* buffer, PGM_VOID_P cmdlist){
                        cli_putstr(buffer);
                        return;
                }
-               cmdlist = (uint8_t*)cmdlist +6;
+               cmdlist = (uint8_t*)cmdlist +CMDLIST_ENTRY_SIZE;
                if(!strncmp_P(buffer, itemstr, len)){
                        cli_putstr_P(PSTR("\r\n    "));
                        cli_putstr_P(itemstr);
index 6504ee2e9ed579f5424fa13921ab9fd6d0ee8f12..3fbe8a7949ef1055d26f23a324512cd8088bdaf1 100644 (file)
 #include <stdint.h>
 #include <avr/pgmspace.h>
 
+#ifndef VOID_FPT
+#define VOID_FPT
 typedef void(*void_fpt)(void);
+#endif
 typedef char (*cli_rx_fpt)(void);
 typedef void (*cli_tx_fpt)(char);
 
 #define CLI_BUFFER_BS 20
+#define CMDLIST_ENTRY_SIZE 8
 
 typedef struct {
        PGM_P      cmd_name;      /* string containing the function name */
        PGM_P      cmd_param_str; /* param descriptor string */
        void_fpt   cmd_function;  /* function pointer */
+       void_fpt   options;
 } cmdlist_entry_t;
 
 extern cli_rx_fpt cli_rx;
 extern cli_tx_fpt cli_tx;
 extern uint8_t cli_echo;
 
+
+void cli_putc(char c);
+uint16_t cli_getc(void);
+uint16_t cli_getc_cecho(void);
 void cli_putstr(char* s);
 void cli_putstr_P(PGM_P s);
 void cli_hexdump(void* data, uint16_t length);
+void cli_hexdump2(void* data, uint16_t length);
 void echo_ctrl(char* s);
 int8_t cmd_interface(PGM_VOID_P cmd_desc);
 
diff --git a/test_src/dump.c b/test_src/dump.c
new file mode 100644 (file)
index 0000000..04b35cb
--- /dev/null
@@ -0,0 +1,127 @@
+/* dump.c */
+/*
+    This file is part of the AVR-Crypto-Lib.
+    Copyright (C) 2008  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/>.
+*/
+/**
+ * \file     dump.c
+ * \email    daniel.otte@rub.de
+ * \author   Daniel Otte 
+ * \date     2009-02-04
+ * \license  GPLv3 or later
+ * 
+ */
+
+#include <stdint.h>
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <ctype.h>
+#include <avr/pgmspace.h>
+#include "cli.h" 
+#include "string-extras.h" 
+#define DUMP_WIDTH 16
+
+static
+void dump_chars(uint8_t* buffer){
+       uint8_t i;
+       cli_putc('|');
+       for(i=0; i<DUMP_WIDTH; ++i){
+               if(isprint(buffer[i])){
+                       cli_putc(buffer[i]);
+               }else{
+                       cli_putc('.');
+               }
+       }
+       cli_putc('|');
+}
+
+
+void dump(char* s){
+       uint8_t flash=1;
+       uint32_t addr=0;
+       uint32_t size=128;
+       uint8_t i,buffer[DUMP_WIDTH];
+       char tstr[9];
+       s=strstrip(s);
+       if(*s=='r' || *s=='R' || *s=='m' || *s=='M')
+               flash=0;
+       if(isalpha(*s)){
+               while(isalpha(*s))
+                       ++s;
+       }
+       char* eptr;
+       if(*s)
+               addr = strtoul(s, &eptr, 0);
+       if(eptr)
+               size = strtoul(eptr, NULL, 0);
+       if(!size)
+               size = 32;      
+       
+       cli_putstr_P(PSTR("\r\ndumping "));     
+       ultoa(size, tstr, 10);
+       cli_putstr(tstr);
+       cli_putstr_P(PSTR(" bytes of "));
+       cli_putstr_P(flash?PSTR("flash"):PSTR("ram"));
+       cli_putstr_P(PSTR(", beginning at 0x"));        
+       ultoa(addr, tstr, 16);
+       cli_putstr(tstr);
+       cli_putstr_P(PSTR(":\r\n"));    
+       while(size>=DUMP_WIDTH){
+               if(flash){
+                       for(i=0; i<DUMP_WIDTH; ++i){
+#ifdef pgm_read_byte_far                               
+                               buffer[i]=pgm_read_byte_far(addr+i);
+#else
+                               buffer[i]=pgm_read_byte(addr+i);
+#endif
+                       }
+               }else{
+                       memcpy(buffer, (void*)((uint16_t)addr), DUMP_WIDTH);
+               }
+               ultoa(addr, tstr, 16);
+               sprintf(tstr,"%6lX", addr);
+               cli_putstr(tstr);
+               cli_putstr_P(PSTR(": "));       
+               cli_hexdump2(buffer, DUMP_WIDTH);
+               cli_putc('\t');
+               dump_chars(buffer);
+               addr+=DUMP_WIDTH;
+               size-=DUMP_WIDTH;
+               cli_putstr_P(PSTR("\r\n"));
+       }
+       if(size){
+               if(flash){
+                       for(i=0; i<size; ++i){
+#ifdef pgm_read_byte_far                               
+                               buffer[i]=pgm_read_byte_far(addr+i);
+#else
+                               buffer[i]=pgm_read_byte(addr+i);
+#endif
+                       }
+               }else{
+                       memcpy(buffer, (void*)((uint16_t)addr), size);
+               }
+               ultoa(addr, tstr, 16);
+               sprintf(tstr,"%6lX", addr);
+               cli_putstr(tstr);
+               cli_putstr_P(PSTR(": "));       
+               cli_hexdump2(buffer, size);
+               cli_putstr_P(PSTR("\r\n"));
+       }
+}
+
diff --git a/test_src/dump.h b/test_src/dump.h
new file mode 100644 (file)
index 0000000..0561b4e
--- /dev/null
@@ -0,0 +1,42 @@
+/* dump.h */
+/*
+    This file is part of the AVR-Crypto-Lib.
+    Copyright (C) 2008  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/>.
+*/
+/**
+ * \file     dump.h
+ * \email    daniel.otte@rub.de
+ * \author   Daniel Otte 
+ * \date     2009-02-04
+ * \license  GPLv3 or later
+ * 
+ */
+
+#ifndef DUMP_H_
+#define DUMP_H_
+
+#include <stdint.h>
+#include <string.h>
+#include <ctype.h>
+#include <avr/pgmspace.h>
+#include "cli.h" 
+#include "string-extras.h" 
+#define DUMP_WIDTH 16
+
+void dump(char* s);
+
+#endif /* DUMP_H_ */
index 7afb223f81ae527b47367e82f077db415b304f95..98d63fa6f3edcb4bfc3a12326cf801b3426bdebc 100644 (file)
@@ -69,10 +69,10 @@ const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
 cmdlist_entry_t cmdlist[] PROGMEM = {
-       { nessie_str,      NULL, testrun_nessie_a51 },
-/*     { performance_str, NULL, testrun_performance_a51}, */
-       { echo_str,    (void*)1, (void_fpt)echo_ctrl},
-       { NULL,            NULL, NULL}
+       { nessie_str,      NULL, testrun_nessie_a51, NULL},
+/*     { performance_str, NULL, testrun_performance_a51, NULL}, */
+       { echo_str,    (void*)1, (void_fpt)echo_ctrl, NULL},
+       { NULL,            NULL, NULL, NULL}
 };
 
 int main (void){
index a4ba9f9cdca777ed0c80108f07708d2cad19ca0c..6adb2ff520563a91382b1d02dc1bfe6478bb4f97 100644 (file)
@@ -34,6 +34,9 @@
 #include <string.h>
 #include <stdlib.h>
 #include "cli.h"
+#include "shavs.h"
+#include "hfal_sha256.h"
+#include "dump.h"
 
 char* algo_name = "SHA-256";
 
@@ -106,13 +109,24 @@ const char nessie_str[]      PROGMEM = "nessie";
 const char test_str[]        PROGMEM = "test";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
+const char shavs_list_str[]  PROGMEM = "shavs_list";
+const char shavs_set_str[]   PROGMEM = "shavs_set";
+const char dump_str[]        PROGMEM = "dump";
+
+const hfdesc_t* algo_list[] PROGMEM = {
+       (hfdesc_t*)&sha256_desc,
+       NULL
+};
 
 cmdlist_entry_t cmdlist[] PROGMEM = {
-       { nessie_str,      NULL, testrun_nessie_sha256},
-       { test_str,        NULL, testrun_nessie_sha256},
-       { performance_str, NULL, testrun_performance_sha256},
-       { echo_str,    (void*)1, (void_fpt)echo_ctrl},
-       { NULL,            NULL, NULL}
+       { nessie_str,          NULL, testrun_nessie_sha256},
+       { test_str,            NULL, testrun_nessie_sha256},
+       { performance_str,     NULL, testrun_performance_sha256},
+       { echo_str,        (void*)1, (void_fpt)echo_ctrl},
+       { shavs_list_str,      NULL, shavs_listalgos},
+       { shavs_set_str,   (void*)1, (void_fpt)shavs_setalgo},
+       { dump_str,        (void*)1, (void_fpt)dump},
+       { NULL,                NULL, NULL}
 };
 
 int main (void){
@@ -120,6 +134,7 @@ int main (void){
        uart_putstr("\r\n");
        cli_rx = uart_getc;
        cli_tx = uart_putc;             
+       algolist=algo_list;
        for(;;){
                uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
                uart_putstr(algo_name);
index 3d96c62f28fbd4738056cb2e94a55b67202ae517..3f05a552a1f078cdbdd9cb49af1a3ce31af1421b 100644 (file)
@@ -63,12 +63,14 @@ void nessie_bc_enc(uint8_t* key, uint8_t* pt){
        memcpy(buffer, pt, nessie_bc_ctx.blocksize_B);
        for(i=0; i<100; ++i){
                nessie_bc_ctx.cipher_enc(buffer, ctx);
+               NESSIE_SEND_ALIVE_A(i);
        }
        nessie_print_item("Iterated 100 times", buffer, nessie_bc_ctx.blocksize_B);
 #ifndef NESSIE_NO1KTEST        
        /* 1000 times test, we use the 100 precedig steps to fasten things a bit */
        for(; i<1000; ++i){
                nessie_bc_ctx.cipher_enc(buffer, ctx);
+               NESSIE_SEND_ALIVE_A(i);
        }
        nessie_print_item("Iterated 1000 times", buffer, nessie_bc_ctx.blocksize_B);
 #endif
index 4a5746509a3c8b7aba43dfb5890804d0ff2e399b..6d66a1ceafe7394a89da79fd8fc9e7024c36cfab 100644 (file)
 #include <stdint.h>
 #include <avr/pgmspace.h>
 #include <stdlib.h> /* utoa() */
-#include "uart.h"
+#include "nessie_common.h"
+
+
+#ifdef NESSIE_ALIVE
+void nessie_send_alive(void){
+       NESSIE_PUTC(NESSIE_ALIVE_CHAR);
+}
+
+void nessie_send_alive_a(uint16_t i){
+       if((i&63)==63)
+               NESSIE_PUTC(NESSIE_ALIVE_CHAR);
+}
+#endif
 
 void nessie_print_block(uint8_t* block, uint16_t blocksize_bit){
        char tab [] = {'0', '1', '2', '3', 
@@ -39,8 +51,8 @@ void nessie_print_block(uint8_t* block, uint16_t blocksize_bit){
                                   'C', 'D', 'E', 'F'};
        uint16_t i;
        for(i=0; i<(blocksize_bit+7)/8; ++i){
-               uart_putc(tab[(block[i])>>4]);
-               uart_putc(tab[(block[i])&0xf]);
+               NESSIE_PUTC(tab[(block[i])>>4]);
+               NESSIE_PUTC(tab[(block[i])&0xf]);
        }                                  
 }
 
@@ -52,15 +64,15 @@ void nessie_print_item(char* name, uint8_t* buffer, uint16_t size_B){
        uint8_t i;
        name_len=strlen(name);
        if(name_len>SPACES-1){
-               uart_putstr_P(PSTR("\r\n!!! formatting error !!!\r\n"));
+               NESSIE_PUTSTR_P(PSTR("\r\n!!! formatting error !!!\r\n"));
                return;
        }
-       uart_putstr_P(PSTR("\r\n"));
+       NESSIE_PUTSTR_P(PSTR("\r\n"));
        for(i=0; i<SPACES-name_len-1; ++i){
-               uart_putc(' ');
+               NESSIE_PUTC(' ');
        }
-       uart_putstr(name);
-       uart_putc('=');
+       NESSIE_PUTSTR(name);
+       NESSIE_PUTC('=');
        /* now the data printing begins */
        if(size_B<=BYTESPERLINE){
                /* one line seems sufficient */
@@ -71,9 +83,9 @@ void nessie_print_item(char* name, uint8_t* buffer, uint16_t size_B){
                int16_t toprint = size_B - BYTESPERLINE;
                buffer += BYTESPERLINE;
                while(toprint > 0){
-                       uart_putstr_P(PSTR("\r\n"));
+                       NESSIE_PUTSTR_P(PSTR("\r\n"));
                        for(i=0; i<SPACES; ++i){
-                               uart_putc(' ');
+                               NESSIE_PUTC(' ');
                        }
                        nessie_print_block(buffer, ((toprint>BYTESPERLINE)?BYTESPERLINE:toprint)*8);
                        buffer  += BYTESPERLINE;
@@ -84,14 +96,14 @@ void nessie_print_item(char* name, uint8_t* buffer, uint16_t size_B){
 
 
 void nessie_print_set_vector(uint8_t set, uint16_t vector){
-       uart_putstr_P(PSTR("\r\n\r\nSet "));
-       uart_putc('0'+set%10);
-       uart_putstr_P(PSTR(", vector#"));
-       uart_putc((vector<1000)?' ':'0'+vector/1000);
-       uart_putc((vector<100)?' ':'0'+(vector/100)%10);
-       uart_putc((vector<10 )?' ':'0'+(vector/10)%10);
-       uart_putc('0'+vector%10);
-       uart_putc(':');
+       NESSIE_PUTSTR_P(PSTR("\r\n\r\nSet "));
+       NESSIE_PUTC('0'+set%10);
+       NESSIE_PUTSTR_P(PSTR(", vector#"));
+       NESSIE_PUTC((vector<1000)?' ':'0'+vector/1000);
+       NESSIE_PUTC((vector<100)?' ':'0'+(vector/100)%10);
+       NESSIE_PUTC((vector<10 )?' ':'0'+(vector/10)%10);
+       NESSIE_PUTC('0'+vector%10);
+       NESSIE_PUTC(':');
 }
 
 /* example:
@@ -99,9 +111,9 @@ Test vectors -- set 3
 =====================
  */ 
 void nessie_print_setheader(uint8_t set){
-       uart_putstr_P(PSTR("\r\n\r\nTest vectors -- set "));
-       uart_putc('0'+set%10);
-       uart_putstr_P(PSTR("\r\n====================="));
+       NESSIE_PUTSTR_P(PSTR("\r\n\r\nTest vectors -- set "));
+       NESSIE_PUTC('0'+set%10);
+       NESSIE_PUTSTR_P(PSTR("\r\n====================="));
 }
 
 /* example:
@@ -122,58 +134,58 @@ void nessie_print_header(char* name,
                          uint16_t macsize_b,
                          uint16_t ivsize_b ){
        uint16_t i;
-       uart_putstr_P(PSTR("\r\n\r\n"
+       NESSIE_PUTSTR_P(PSTR("\r\n\r\n"
        "********************************************************************************\r\n"
        "* micro-crypt - crypto primitives for microcontrolles by Daniel Otte           *\r\n"
        "********************************************************************************\r\n"
        "\r\n"));
-       uart_putstr_P(PSTR("Primitive Name: "));
-       uart_putstr(name);
-       uart_putstr_P(PSTR("\r\n"));
+       NESSIE_PUTSTR_P(PSTR("Primitive Name: "));
+       NESSIE_PUTSTR(name);
+       NESSIE_PUTSTR_P(PSTR("\r\n"));
        /* underline */ 
        for(i=0; i<16+strlen(name); ++i){
-               uart_putc('=');
+               NESSIE_PUTC('=');
        }
        char str[6]; /* must catch numbers up to 65535 + terminatin \0 */
        if(keysize_b){
-               uart_putstr_P(PSTR("\r\nKey size: "));
+               NESSIE_PUTSTR_P(PSTR("\r\nKey size: "));
                utoa(keysize_b, str, 10);
-               uart_putstr(str);
-               uart_putstr_P(PSTR(" bits"));
+               NESSIE_PUTSTR(str);
+               NESSIE_PUTSTR_P(PSTR(" bits"));
        }
        if(blocksize_b){
-               uart_putstr_P(PSTR("\r\nBlock size: "));
+               NESSIE_PUTSTR_P(PSTR("\r\nBlock size: "));
                utoa(blocksize_b, str, 10);
-               uart_putstr(str);
-               uart_putstr_P(PSTR(" bits"));
+               NESSIE_PUTSTR(str);
+               NESSIE_PUTSTR_P(PSTR(" bits"));
        }
        if(hashsize_b){
-               uart_putstr_P(PSTR("\r\nHash size: "));
+               NESSIE_PUTSTR_P(PSTR("\r\nHash size: "));
                utoa(hashsize_b, str, 10);
-               uart_putstr(str);
-               uart_putstr_P(PSTR(" bits"));
+               NESSIE_PUTSTR(str);
+               NESSIE_PUTSTR_P(PSTR(" bits"));
        }
        if(macsize_b){
-               uart_putstr_P(PSTR("\r\nMac size: "));
+               NESSIE_PUTSTR_P(PSTR("\r\nMac size: "));
                utoa(macsize_b, str, 10);
-               uart_putstr(str);
-               uart_putstr_P(PSTR(" bits"));
+               NESSIE_PUTSTR(str);
+               NESSIE_PUTSTR_P(PSTR(" bits"));
        }
        if(ivsize_b){
                if(ivsize_b==(uint16_t)-1){
-                       uart_putstr_P(PSTR("\r\nNo initial value (IV) mode"));
+                       NESSIE_PUTSTR_P(PSTR("\r\nNo initial value (IV) mode"));
                }
                {
-                       uart_putstr_P(PSTR("\r\nIV size: "));
+                       NESSIE_PUTSTR_P(PSTR("\r\nIV size: "));
                        utoa(ivsize_b, str, 10);
-                       uart_putstr(str);
-                       uart_putstr_P(PSTR(" bits"));
+                       NESSIE_PUTSTR(str);
+                       NESSIE_PUTSTR_P(PSTR(" bits"));
                }
        }
-       uart_putstr_P(PSTR("\r\n"));
+       NESSIE_PUTSTR_P(PSTR("\r\n"));
 }
 
 void nessie_print_footer(void){
-       uart_putstr_P(PSTR("\r\n\r\n\r\n\r\nEnd of test vectors\r\n\r\n"));
+       NESSIE_PUTSTR_P(PSTR("\r\n\r\n\r\n\r\nEnd of test vectors\r\n\r\n"));
 }
 
index 0d1754b96c9ce36d0d6592c3d85564a8022b91e5..b2d2b14cb516cd6884c214d2e82949e47355d99c 100644 (file)
 #ifndef NESSIE_COMMON_H_
 #define NESSIE_COMMON_H_
 
+#define NESSIE_ALIVE_CHAR 0x06
+#define NESSIE_ALIVE
+#define NESSIE_USE_CLI
 
 #include <stdint.h>
 
+#ifdef NESSIE_ALIVE
+#define NESSIE_SEND_ALIVE nessie_send_alive()
+void nessie_send_alive(void);
+#define NESSIE_SEND_ALIVE_A(i) nessie_send_alive_a(i)
+void nessie_send_alive_a(uint16_t i);
+#else
+#define NESSIE_SEND_ALIVE 
+#define NESSIE_SEND_ALIVE_A(i)  
+#endif
+
+
+#ifdef NESSIE_USE_CLI
+#include "cli.h"
+#define NESSIE_PUTC cli_putc
+#define NESSIE_PUTSTR cli_putstr
+#define NESSIE_PUTSTR_P cli_putstr_P
+#else
+#include "uart.h"
+#define NESSIE_PUTC uart_putc
+#define NESSIE_PUTSTR uart_putstr
+#define NESSIE_PUTSTR_P uart_putstr_P
+#endif
+
 void nessie_print_block(uint8_t* block, uint16_t blocksize_bit);
 void nessie_print_item(char* name, uint8_t* buffer, uint16_t size_B);
 void nessie_print_set_vector(uint8_t set, uint16_t vector);
index fccc1764fc3244b2f469955fb1b4a321fa5a6ddc..63e4b5309fa81220c3447e5a31589477cb61afe5 100644 (file)
@@ -39,8 +39,8 @@ void ascii_hash(char* data, char* desc){
        uint8_t hash[(nessie_hash_ctx.hashsize_b+7)/8];
        uint16_t sl;
        
-       uart_putstr_P(PSTR("\r\n                       message="));
-       uart_putstr(desc);
+       NESSIE_PUTSTR_P(PSTR("\r\n                       message="));
+       NESSIE_PUTSTR(desc);
        nessie_hash_ctx.hash_init(ctx);
        sl = strlen(data);
        while(sl>=nessie_hash_ctx.blocksize_B){
@@ -61,14 +61,16 @@ void amillion_hash(void){
        uint8_t hash[(nessie_hash_ctx.hashsize_b+7)/8];
        uint8_t block[nessie_hash_ctx.blocksize_B];
        uint32_t n=1000000LL;
+       uint16_t i=0;
        
-       uart_putstr_P(PSTR("\r\n                       message="));
-       uart_putstr_P(PSTR("1 million times \"a\""));
+       NESSIE_PUTSTR_P(PSTR("\r\n                       message="));
+       NESSIE_PUTSTR_P(PSTR("1 million times \"a\""));
        memset(block, 'a', nessie_hash_ctx.blocksize_B);
        nessie_hash_ctx.hash_init(ctx);
        while(n>=nessie_hash_ctx.blocksize_B){
                nessie_hash_ctx.hash_next(block, ctx);
                n    -= nessie_hash_ctx.blocksize_B;
+               NESSIE_SEND_ALIVE_A(i++);
        }
        nessie_hash_ctx.hash_last(block, n*8, ctx);
        nessie_hash_ctx.hash_conv(hash, ctx);
@@ -82,17 +84,17 @@ void zero_hash(uint16_t n){
        uint8_t hash[(nessie_hash_ctx.hashsize_b+7)/8];
        uint8_t block[nessie_hash_ctx.blocksize_B];
        
-       uart_putstr_P(PSTR("\r\n                       message="));
+       NESSIE_PUTSTR_P(PSTR("\r\n                       message="));
        if(n>=10000)
-               uart_putc('0'+n/10000);
+               NESSIE_PUTC('0'+n/10000);
        if(n>=1000)
-               uart_putc('0'+(n/1000)%10);
+               NESSIE_PUTC('0'+(n/1000)%10);
        if(n>=100)
-               uart_putc('0'+(n/100)%10);
+               NESSIE_PUTC('0'+(n/100)%10);
        if(n>=10)
-               uart_putc('0'+(n/10)%10);
-       uart_putc('0'+n%10);
-       uart_putstr_P(PSTR(" zero bits"));
+               NESSIE_PUTC('0'+(n/10)%10);
+       NESSIE_PUTC('0'+n%10);
+       NESSIE_PUTSTR_P(PSTR(" zero bits"));
        
        memset(block, 0, nessie_hash_ctx.blocksize_B); 
        nessie_hash_ctx.hash_init(ctx);
@@ -115,24 +117,24 @@ void one_in512_hash(uint16_t pos){
                      "08", "04", "02", "01" };
 
        pos&=511;
-       uart_putstr_P(PSTR("\r\n                       message="));
-       uart_putstr_P(PSTR("512-bit string: "));
+       NESSIE_PUTSTR_P(PSTR("\r\n                       message="));
+       NESSIE_PUTSTR_P(PSTR("512-bit string: "));
        if((pos/8) >=10){
-               uart_putc('0'+(pos/8/10)%10);
+               NESSIE_PUTC('0'+(pos/8/10)%10);
        } else {
-               uart_putc(' ');
+               NESSIE_PUTC(' ');
        }
-       uart_putc('0'+(pos/8)%10);
-       uart_putstr_P(PSTR("*00,"));
-       uart_putstr(tab[pos&7]);
-       uart_putc(',');
+       NESSIE_PUTC('0'+(pos/8)%10);
+       NESSIE_PUTSTR_P(PSTR("*00,"));
+       NESSIE_PUTSTR(tab[pos&7]);
+       NESSIE_PUTC(',');
        if(63-(pos/8) >=10){
-               uart_putc('0'+((63-pos/8)/10)%10);
+               NESSIE_PUTC('0'+((63-pos/8)/10)%10);
        } else {
-               uart_putc(' ');
+               NESSIE_PUTC(' ');
        }
-       uart_putc('0'+(63-pos/8)%10);
-       uart_putstr_P(PSTR("*00"));
+       NESSIE_PUTC('0'+(63-pos/8)%10);
+       NESSIE_PUTSTR_P(PSTR("*00"));
        
        /* now the real stuff */
        memset(block, 0, 512/8);
@@ -155,18 +157,18 @@ void tv4_hash(void){
        uint16_t n=nessie_hash_ctx.hashsize_b;
        uint32_t i;
        
-       uart_putstr_P(PSTR("\r\n                       message="));
+       NESSIE_PUTSTR_P(PSTR("\r\n                       message="));
        if(nessie_hash_ctx.hashsize_b>=10000)
-               uart_putc('0' + (nessie_hash_ctx.hashsize_b/10000)%10);
+               NESSIE_PUTC('0' + (nessie_hash_ctx.hashsize_b/10000)%10);
        if(nessie_hash_ctx.hashsize_b>=1000)
-               uart_putc('0' + (nessie_hash_ctx.hashsize_b/1000)%10);
+               NESSIE_PUTC('0' + (nessie_hash_ctx.hashsize_b/1000)%10);
        if(nessie_hash_ctx.hashsize_b>=100)
-               uart_putc('0' + (nessie_hash_ctx.hashsize_b/100)%10);
+               NESSIE_PUTC('0' + (nessie_hash_ctx.hashsize_b/100)%10);
        if(nessie_hash_ctx.hashsize_b>=10)
-               uart_putc('0' + (nessie_hash_ctx.hashsize_b/10)%10);
-       uart_putc('0' + nessie_hash_ctx.hashsize_b%10);
+               NESSIE_PUTC('0' + (nessie_hash_ctx.hashsize_b/10)%10);
+       NESSIE_PUTC('0' + nessie_hash_ctx.hashsize_b%10);
 
-       uart_putstr_P(PSTR(" zero bits"));
+       NESSIE_PUTSTR_P(PSTR(" zero bits"));
        memset(block, 0, 256/8);
        
        nessie_hash_ctx.hash_init(ctx);
@@ -181,6 +183,7 @@ void tv4_hash(void){
                nessie_hash_ctx.hash_init(ctx);
                nessie_hash_ctx.hash_last(hash, nessie_hash_ctx.hashsize_b, ctx);
                nessie_hash_ctx.hash_conv(hash, ctx);
+               NESSIE_SEND_ALIVE_A(i);
        }
        nessie_print_item("iterated 100000 times", hash, (nessie_hash_ctx.hashsize_b+7)/8);
 }
index ef4c0d82c383aae3daa74b8e191e593a0b42ab47..90e33de553d9ffcb14e3c2c551ee7d2485ef3f39 100644 (file)
@@ -45,8 +45,8 @@ void ascii_mac(char* data, char* desc, uint8_t* key){
        uint8_t mac[MACSIZE_B];
        uint16_t sl;
        
-       uart_putstr_P(PSTR("\r\n                       message="));
-       uart_putstr(desc);
+       NESSIE_PUTSTR_P(PSTR("\r\n                       message="));
+       NESSIE_PUTSTR(desc);
        PRINTKEY;
        nessie_mac_ctx.mac_init(key, nessie_mac_ctx.keysize_b, ctx);
        sl = strlen(data);
@@ -68,9 +68,10 @@ void amillion_mac(uint8_t* key){
        uint8_t mac[MACSIZE_B];
        uint8_t block[nessie_mac_ctx.blocksize_B];
        uint32_t n=1000000LL;
+       uint16_t i=0;
        
-       uart_putstr_P(PSTR("\r\n                       message="));
-       uart_putstr_P(PSTR("1 million times \"a\""));
+       NESSIE_PUTSTR_P(PSTR("\r\n                       message="));
+       NESSIE_PUTSTR_P(PSTR("1 million times \"a\""));
        PRINTKEY;
        
        memset(block, 'a', nessie_mac_ctx.blocksize_B);
@@ -78,6 +79,7 @@ void amillion_mac(uint8_t* key){
        while(n>nessie_mac_ctx.blocksize_B){
                nessie_mac_ctx.mac_next(block, ctx);
                n    -= nessie_mac_ctx.blocksize_B;
+               NESSIE_SEND_ALIVE_A(i++);
        }
        nessie_mac_ctx.mac_last(block, n*8, key, nessie_mac_ctx.keysize_b, ctx);
        nessie_mac_ctx.mac_conv(mac, ctx);
@@ -91,17 +93,17 @@ void zero_mac(uint16_t n, uint8_t* key){
        uint8_t mac[MACSIZE_B];
        uint8_t block[nessie_mac_ctx.blocksize_B];
        
-       uart_putstr_P(PSTR("\r\n                       message="));
+       NESSIE_PUTSTR_P(PSTR("\r\n                       message="));
        if(n>=10000)
-               uart_putc('0'+n/10000);
+               NESSIE_PUTC('0'+n/10000);
        if(n>=1000)
-               uart_putc('0'+(n/1000)%10);
+               NESSIE_PUTC('0'+(n/1000)%10);
        if(n>=100)
-               uart_putc('0'+(n/100)%10);
+               NESSIE_PUTC('0'+(n/100)%10);
        if(n>=10)
-               uart_putc('0'+(n/10)%10);
-       uart_putc('0'+n%10);
-       uart_putstr_P(PSTR(" zero bits"));
+               NESSIE_PUTC('0'+(n/10)%10);
+       NESSIE_PUTC('0'+n%10);
+       NESSIE_PUTSTR_P(PSTR(" zero bits"));
        PRINTKEY;
        
        memset(block, 0, nessie_mac_ctx.blocksize_B); 
@@ -125,24 +127,24 @@ void one_in512_mac(uint16_t pos, uint8_t* key){
                      "08", "04", "02", "01" };
 
        pos&=511;
-       uart_putstr_P(PSTR("\r\n                       message="));
-       uart_putstr_P(PSTR("512-bit string: "));
+       NESSIE_PUTSTR_P(PSTR("\r\n                       message="));
+       NESSIE_PUTSTR_P(PSTR("512-bit string: "));
        if((pos/8) >=10){
-               uart_putc('0'+(pos/8/10)%10);
+               NESSIE_PUTC('0'+(pos/8/10)%10);
        } else {
-               uart_putc(' ');
+               NESSIE_PUTC(' ');
        }
-       uart_putc('0'+(pos/8)%10);
-       uart_putstr_P(PSTR("*00,"));
-       uart_putstr(tab[pos&7]);
-       uart_putc(',');
+       NESSIE_PUTC('0'+(pos/8)%10);
+       NESSIE_PUTSTR_P(PSTR("*00,"));
+       NESSIE_PUTSTR(tab[pos&7]);
+       NESSIE_PUTC(',');
        if(63-(pos/8) >=10){
-               uart_putc('0'+((63-pos/8)/10)%10);
+               NESSIE_PUTC('0'+((63-pos/8)/10)%10);
        } else {
-               uart_putc(' ');
+               NESSIE_PUTC(' ');
        }
-       uart_putc('0'+(63-pos/8)%10);
-       uart_putstr_P(PSTR("*00"));
+       NESSIE_PUTC('0'+(63-pos/8)%10);
+       NESSIE_PUTSTR_P(PSTR("*00"));
        PRINTKEY;
        
        /* now the real stuff */
@@ -169,8 +171,8 @@ void tv4_mac(uint8_t* key){
        uint16_t n=256;
        uint32_t i;
        
-       uart_putstr_P(PSTR("\r\n                       message="));
-       uart_putstr(PSTR("256 zero bits"));
+       NESSIE_PUTSTR_P(PSTR("\r\n                       message="));
+       NESSIE_PUTSTR(PSTR("256 zero bits"));
        memset(block, 0, 256/8);
        
        nessie_mac_ctx.mac_init(key, nessie_mac_ctx.keysize_b, ctx);;
@@ -185,6 +187,7 @@ void tv4_mac(uint8_t* key){
                nessie_mac_ctx.mac_init(key, nessie_mac_ctx.keysize_b, ctx);;
                nessie_mac_ctx.mac_last(mac, nessie_mac_ctx.macsize_b, key, nessie_mac_ctx.keysize_b, ctx);
                nessie_mac_ctx.mac_conv(mac, ctx);
+               NESSIE_SEND_ALIVE_A(i);
        }
        nessie_print_item("iterated 100000 times", mac, MACSIZE_B);
 }
index 461f5cbbc2e334778aba725f13823944470f3515..cc4ac1ff5b8ee320929c2d289e947deeb0018439 100644 (file)
@@ -118,6 +118,7 @@ void nessie_stream_enc_large(uint8_t* key){
        for(i=0; i<((65472-0)/BLOCKSIZE_B-1); ++i){
                nessie_gen_block(ctx, buffer);
                memxor(xorbuffer, buffer, BLOCKSIZE_B);
+               NESSIE_SEND_ALIVE_A(i);
        }
        
        nessie_gen_block(ctx, buffer);
@@ -131,6 +132,7 @@ void nessie_stream_enc_large(uint8_t* key){
        for(i=0; i<((131008-65536)/BLOCKSIZE_B-1); ++i){
                nessie_gen_block(ctx, buffer);
                memxor(xorbuffer, buffer, BLOCKSIZE_B);
+               NESSIE_SEND_ALIVE_A(i);
        }
        
        nessie_gen_block(ctx, buffer);
diff --git a/test_src/shavs.c b/test_src/shavs.c
new file mode 100644 (file)
index 0000000..bde453b
--- /dev/null
@@ -0,0 +1,91 @@
+/* shavs.c */
+/*
+    This file is part of the AVR-Crypto-Lib.
+    Copyright (C) 2008  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/>.
+*/
+/**
+ * \file       shavs.c
+ * \author  Daniel Otte 
+ * \date    2006-05-16
+ * \license    GPLv3 or later
+ * 
+ */
+
+#include <avr/pgmspace.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include "hashfunction_descriptor.h"
+#include "shavs.h"
+#include "string-extras.h"
+#include "cli.h"
+
+hfdesc_t*  algo=NULL;
+hfdesc_t** algolist=NULL;
+
+void shavs_listalgos(void){
+       char option = 'a';
+       
+       cli_putstr_P(PSTR("\r\nDBG: &algolist: "));
+       cli_hexdump(&algolist, 2);
+       cli_putstr_P(PSTR("\r\nDBG: algolist[0]: "));
+       cli_hexdump(algolist, 8);
+       
+       hfdesc_t* t;
+       uint8_t i=0;
+       cli_putstr_P(PSTR("\r\nthe following algorithms are available:\r\n"));
+       while(option<='z' && (t=(hfdesc_t*)pgm_read_word(&(algolist[i])))){
+               cli_putc('\t');
+               cli_putc((t==algo)?'*':' ');
+               cli_putc(option++);
+               cli_putstr_P(PSTR(":\t"));
+               cli_putstr_P((void*)(pgm_read_word(&(t->name))));
+               cli_putstr_P(PSTR("\r\n"));
+               i++;
+       }
+}
+
+void shavs_setalgo(char* param){
+       param = strstrip(param);
+       if(param[1]=='\0'){ /* single letter specified */
+               uint8_t i,option = param[0]-'a';
+               
+               if(!algolist){
+                       cli_putstr_P(PSTR("\r\nERROR: algolist not set!"));
+                       return;
+               }
+               for(i=0; i<=option; ++i){
+                       if((void*)pgm_read_word(&(algolist[i]))==NULL){
+                               cli_putstr_P(PSTR("\r\nERROR: invalid selection!"));
+                               return;
+                       }
+               }
+               algo=(hfdesc_t*)pgm_read_word(&(algolist[option]));
+       } else { /* name specifyed */ 
+               hfdesc_t* t=NULL;
+               uint8_t i=0;
+               while((t=(hfdesc_t*)pgm_read_word(&(algolist[i]))) &&
+                      strcasecmp_P(param, (void*)pgm_read_word(&(t->name))))
+                       ++i;
+               if(t){
+                       algo=t;
+               }else{
+                       cli_putstr_P(PSTR("\r\nERROR: could not find \""));
+                       cli_putstr(param);
+                       cli_putstr_P(PSTR("\"!"));
+               }       
+       }
+}
+
diff --git a/test_src/shavs.h b/test_src/shavs.h
new file mode 100644 (file)
index 0000000..a64f3a6
--- /dev/null
@@ -0,0 +1,39 @@
+/* shavs.h */
+/*
+    This file is part of the AVR-Crypto-Lib.
+    Copyright (C) 2008  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/>.
+*/
+/**
+ * \file       shavs.h
+ * \author  Daniel Otte 
+ * \date    2006-05-16
+ * \license    GPLv3 or later
+ * 
+ */
+
+#ifndef SHAVS_H_
+#define SHAVS_H_
+
+#include <stdlib.h>
+#include "hashfunction_descriptor.h"
+
+extern hfdesc_t*  algo;
+extern hfdesc_t** algolist;
+
+void shavs_listalgos(void);
+void shavs_setalgo(char* param);
+
+#endif /* SHAVS */
index 12fd013e889a5d7f5ff41cc9cd237be6e3e7de37..3ac69c3b263eb60848d8252feaf97cc0d944840d 100644 (file)
--- a/trivium.c
+++ b/trivium.c
@@ -1,6 +1,6 @@
 /* trivium.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 3a0428a499a0bd4363cd7789a05d6cefd7c5caff..14a005f362a9f13144e4e15cf3382132ed644258 100644 (file)
--- a/trivium.h
+++ b/trivium.h
@@ -1,6 +1,6 @@
 /* trivium.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index ad69e3809fb1bc6fc655543e28974710f0e44968..7ae38422a16fe5599bfdf06f93e55ac8c5dc5110 100644 (file)
@@ -1,6 +1,6 @@
 /* twister-asm.S */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 5cdd02bee62d41885d95e75a2332d437aa352846..e6e769125f74f722335ffac56ff4d521f7ce3a87 100644 (file)
@@ -1,6 +1,6 @@
 /* twister-big-asm.S */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index f3233076813bb20d924d7fe08b303f760240c4c0..795190951d3263d4a78718ff887c0fc98bd25d7c 100644 (file)
@@ -1,6 +1,6 @@
 /* twister-big.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 9a1f0c70fdc50b2600cf1571ba404e0919b3fbb9..b5167ef6082d4265720eef8597f557ecca0e0f95 100644 (file)
@@ -1,6 +1,6 @@
 /* twister-small-asm.S */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 5dd3808396eb9bb992c46bb880f573bee962311e..c82e22ea5dec05a9373eb67f87ac338bb2e86796 100644 (file)
--- a/twister.c
+++ b/twister.c
@@ -1,6 +1,6 @@
 /* twister.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
 #include "twister_tables.h"
 #include "memxor.h"
 
-#ifndef TWISTER_MUL_TABLE
+//#ifndef TWISTER_MUL_TABLE
 # include "gf256mul.h"
-#endif
+//#endif
 
 #define MDS(a,b)  pgm_read_byte(&(twister_mds[(a)][(b)]))
 
-#ifdef TWISTER_MUL_TABLE
-# define MULT(a,b) pgm_read_byte(&(twister_multab[(a)][(b)]))
-#else
+//#ifdef TWISTER_MUL_TABLE
+//# define MULT(a,b) pgm_read_byte(&(twister_multab[(a)][(b)]))
+//#else
 # define MULT(a,b) gf256mul((a),(b), 0x4D)
-#endif
+//#endif
 
 void twister_blank_round(twister_state_t* ctx){
        uint8_t i,j,k;
@@ -57,19 +57,25 @@ void twister_blank_round(twister_state_t* ctx){
                for( j=0; j<8; j++ ){
                        k=(i+1)&7;
                        ctx->s[j][i] =
-                               MULT( MDS(j,0), tmp[0][i] ) ^
-                               MULT( MDS(j,1), tmp[1][k] ) ^
-                               MULT( MDS(j,2), tmp[2][(++k)&7] ) ^
-                               MULT( MDS(j,3), tmp[3][(++k)&7] ) ^
-                               MULT( MDS(j,4), tmp[4][(++k)&7] ) ^
-                               MULT( MDS(j,5), tmp[5][(++k)&7] ) ^
-                               MULT( MDS(j,6), tmp[6][(++k)&7] ) ^
-                               MULT( MDS(j,7), tmp[7][(++k)&7] ) ;
+                               MULT( MDS(j,0), (tmp[0][i]) );
+                       ctx->s[j][i] ^=  
+                               MULT( MDS(j,1), (tmp[1][k]) );
+                       ctx->s[j][i] ^=  
+                               MULT( MDS(j,2), (tmp[2][((++k)&7)]) );
+                       ctx->s[j][i] ^=  
+                               MULT( MDS(j,3), (tmp[3][((++k)&7)]) );
+                       ctx->s[j][i] ^=  
+                               MULT( MDS(j,4), (tmp[4][((++k)&7)]) );
+                       ctx->s[j][i] ^=  
+                               MULT( MDS(j,5), (tmp[5][((++k)&7)]) );
+                       ctx->s[j][i] ^=  
+                               MULT( MDS(j,6), (tmp[6][((++k)&7)]) );
+                       ctx->s[j][i] ^=  
+                               MULT( MDS(j,7), (tmp[7][((++k)&7)]) );
                                
                }       
        }
 }
-
 void twister_mini_round(twister_state_t* ctx, const void* msg){
        /* inject message */
        uint8_t i;
index 07c6be058330f33096c2609893e2ef0161616f3e..ec6b2190fcf5a90d12969a693a93103d2ee48323 100644 (file)
--- a/twister.h
+++ b/twister.h
@@ -1,6 +1,6 @@
 /* twister.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 160d880865fc494c635bf1e5330b96063ceb602f..e97ed5540b2c465d7133d1bca0be3f0411518d42 100644 (file)
@@ -1,6 +1,6 @@
 /* twister224.S */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index fb854fac9c78f86f161f16144a126ba0d2a61967..ce1dc11c72e395dfbb3b50cd755b0d292eed5862 100644 (file)
@@ -1,6 +1,6 @@
 /* twister256.S */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 03d911c18cd605f34cf83fdf9fef78f0802809c4..e58624327dc586750e3b6cec1d1f0d31b73f1375 100644 (file)
@@ -1,6 +1,6 @@
 /* twister384.S */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index 70d98edf228308f157293850b40e18a4cf4d0e94..f2f701f7db08550d4742cd4067a33354dad81b23 100644 (file)
@@ -1,6 +1,6 @@
 /* twister512.S */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
diff --git a/uart.h b/uart.h
index e72d95f0334586d267a1d9dbcf16e78e11fd7c1a..946ed38aa618e0d3bcb6b8643031330880aad2f8 100644 (file)
--- a/uart.h
+++ b/uart.h
@@ -1,6 +1,6 @@
 /* uart.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
index f117e07bd867e1777b5a4c66e4adf18f34f3838d..826f12386a4aab0d68241f4beef6370bc10e99be 100644 (file)
@@ -1,6 +1,6 @@
 /* xtea-asm.S */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
diff --git a/xtea.c b/xtea.c
index 36050f61f5d7488ba9201c768ff9af66ead9e8e2..4605cb0ffb4ee64b055ea66351b64779f8ee391f 100644 (file)
--- a/xtea.c
+++ b/xtea.c
@@ -1,6 +1,6 @@
 /* xtea.c */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify
diff --git a/xtea.h b/xtea.h
index 53bd2a651751c23ebf98749c31fd33e1d9c28eea..b753bf753a469165b72e0f7aad1d68bf7ececc00 100644 (file)
--- a/xtea.h
+++ b/xtea.h
@@ -1,6 +1,6 @@
 /* xtea.h */
 /*
-    This file is part of the 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)
 
     This program is free software: you can redistribute it and/or modify