]> git.ipfire.org Git - thirdparty/nettle.git/commitdiff
*** empty log message ***
authorNiels Möller <nisse@lysator.liu.se>
Sat, 16 Jun 2001 22:45:18 +0000 (00:45 +0200)
committerNiels Möller <nisse@lysator.liu.se>
Sat, 16 Jun 2001 22:45:18 +0000 (00:45 +0200)
Rev: src/nettle/ChangeLog:1.8
Rev: src/nettle/serpent.h:1.3
Rev: src/nettle/testsuite/.cvsignore:1.4
Rev: src/nettle/testsuite/twofish-test.m4:1.2
Rev: src/nettle/twofish.h:1.2

ChangeLog
serpent.h
testsuite/.cvsignore
testsuite/.gitignore
testsuite/twofish-test.m4
twofish.h

index fbb2f78be46fc9081d6ecd5737448599356679d1..9bc87665349c4a0d28d8a9fc77791b27fba1a8b2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,52 @@
+2001-06-17  Niels Möller  <nisse@cuckoo.hack.org>
+
+       * testsuite/serpent-test.m4: Added a few rudimentary tests
+       extracted from the serpent package.
+
+       * twofish.c: Adapted to nettle. Made constant tables const.
+       Deleted bytes_to_word and word_to_bytes; use LE_READ_UINT32 and
+       LE_WRITE_UINT32 instead.
+       (twofish_selftest): Deleted. Moved the tests to the external
+       testsuite. 
+       (twofish_set_key): Don't silently truncate too large keys. 
+
+       * sha1.c (sha1_update): Use unsigned for length.
+
+       * serpent.c (serpent_set_key): Read the key backwards. Fixed
+       padding (but there are no test vectors for key_size not a multiple
+       of 4).
+       (serpent_encrypt): Read and write data in the strange order used
+       by the reference implementation.
+       (serpent_decrypt): Likewise.
+
+       * macros.h (FOR_BLOCKS): New macro, taken from lsh.
+
+       * blowfish.h (struct blowfish_ctx): Use a two-dimensional array
+       for s.
+
+       * blowfish.c (initial_ctx): Arrange constants into a struct, to
+       simplify key setup.
+       (F): Deleted all but one definitions of the F function/macro.
+       Added a context argument, and use that to find the subkeys.
+       (R): Added context argument, and use that to find the subkeys.
+       (blowfish_set_key): Some simplification.
+
+       (encrypt): Deleted code for non-standard number of rounds. Deleted
+       a bunch of local variables. Using the context pointer for
+       everything should consume less registers.
+       (decrypt): Likewise.
+
+       * Makefile.am (libnettle_a_SOURCES): Added twofish.
+
+2001-06-16  Niels Möller  <nisse@cuckoo.hack.org>
+
+       * testsuite/blowfish-test.m4: Fixed test.
+
+       * Added twofish implementation.
+
+       * blowfish.h (struct blowfish_ctx): Use the correct size for the p
+       array. 
+
 2001-06-15  Niels Möller  <nisse@ehand.com>
 
        * testsuite/blowfish-test.m4: Fixed testcase, use correct key
index 5f5053ad8a042eba2b2c254844e367f61dbb12a8..281e050acf62c392a3d93b38a2783c85f227f242 100644 (file)
--- a/serpent.h
+++ b/serpent.h
 
 #include <stdint.h>
 
-#define SERPENT_BLOCKSIZE 16
+#define SERPENT_BLOCK_SIZE 16
 
-/* Other key lengths are possible, but we only use 256 bits.  Besides, the
-   design of Serpent makes other key lengths useless; they cheated with the
-   AES requirements, using a 256-bit key length exclusively and just padding
-   it out if the desired key length was less, so there really is no advantage
  to using key lengths less than 256 bits. */
-#define SERPENT_KEYSIZE 32
+/* Other key lengths are possible, but the design of Serpent makes
+ * smaller key lengths quite pointless; they cheated with the AES
+ * requirements, using a 256-bit key length exclusively and just
+ * padding it out if the desired key length was less, so there really
* is no advantage to using key lengths less than 256 bits. */
+#define SERPENT_KEY_SIZE 32
 
 /* Allow keys of size 128 <= bits <= 256 */
 
index 641dc9ebd4fb260675ec09569cc7c914bad234b3..bcf766a60a6268ba2898c44e2910ccda6d233341 100644 (file)
@@ -11,5 +11,9 @@ des-test
 des-test.c
 md5-test
 md5-test.c
+serpent-test
+serpent-test.c
 sha1-test
 sha1-test.c
+twofish-test
+twofish-test.c
index e8e5a17086853dce39e55b609d01dc4d07b7a78e..54b6bb58bb2d40c0e3740270172c88084b0b0011 100644 (file)
@@ -11,5 +11,9 @@
 /des-test.c
 /md5-test
 /md5-test.c
+/serpent-test
+/serpent-test.c
 /sha1-test
 /sha1-test.c
+/twofish-test
+/twofish-test.c
index 8b2a3512254dc882c136cf6573e5f457c62894f1..98840bf2bb61f3b7d7ef701a265bba527a95ff21 100644 (file)
@@ -11,7 +11,7 @@ uint8_t clear[TWOFISH_BLOCK_SIZE];
 /* 128 bit key */
 H(msg, "0000000000000000 0000000000000000");
 
-twofish_set_key(&ctx, 16, H("0000000000000000 0000000000000000"))
+twofish_set_key(&ctx, 16, H("0000000000000000 0000000000000000"));
 twofish_encrypt(&ctx, TWOFISH_BLOCK_SIZE, cipher, msg);
 
 if (!MEMEQ(TWOFISH_BLOCK_SIZE, cipher,
@@ -39,8 +39,6 @@ if (!MEMEQ(TWOFISH_BLOCK_SIZE, msg, clear))
 /* 256 bit key */
 twofish_set_key(&ctx, 32, H("0123456789ABCDEF FEDCBA9876543210"
                            "0011223344556677 8899AABBCCDDEEFF"));
-  FAIL;
-
 twofish_encrypt(&ctx, TWOFISH_BLOCK_SIZE, cipher, msg);
 
 if (!MEMEQ(TWOFISH_BLOCK_SIZE, cipher,
index 0b4c6ef0cf9227cd82c2bc862c6cc01df163e42c..81a19287ad49586ad0d049414bffa471811f8c67 100644 (file)
--- a/twofish.h
+++ b/twofish.h
@@ -46,7 +46,7 @@
 struct twofish_ctx
 {
   uint32_t keys[40];
-  uitn32_t s_box[4][256];
+  uint32_t s_box[4][256];
 };
 
 void