* Step toward making enctest.c generally usable (skipjack and
authorDavor Ocelic <docelic@spinlock.hr>
Wed, 28 Jan 2009 20:48:19 +0000 (21:48 +0100)
committerDavor Ocelic <docelic@spinlock.hr>
Wed, 28 Jan 2009 20:48:19 +0000 (21:48 +0100)
des work though it, tea and aes don't at the moment)

src/config.h
src/crypt.h
src/enctest.c
src/newdes-sk.h
src/skipjack.h

index bc13111..f0f9eeb 100644 (file)
   - 2: NEWDES-SK
   - 3: AES
 */
-//#define CONF_WITH_CRYPT_ALGO    0 /* TEA */
-#define CONF_WITH_CRYPT_ALGO    1 /* Skipjack */
-//#define CONF_WITH_CRYPT_ALGO    2 /* NEWDES-SK */
-//#define CONF_WITH_CRYPT_ALGO    3 /* AES */
+#define CONF_WITH_CRYPT_ALGO    2
 
 /* Verify dependencies */
 
index 4ac90da..60d7132 100644 (file)
 #define CRYPT_KEY_LEN TEA_KEY_LEN
 //! Length of cipher block in octets.
 #define CRYPT_BLOCK_LEN TEA_BLOCK_LEN
+//! Test input value, crypt key and encryption result for algorithm
+//  correctness verification.
+#define CRYPT_TEST_VAL TEA_TEST_VAL
+#define CRYPT_TEST_KEY TEA_TEST_KEY
+#define CRYPT_TEST_CHK TEA_TEST_CHK
 //! Single block encryption function.
 #define crypt_enc(v,k) tea_enc((iu32*)(v),(iu32*)(k))
 //! Single block decryption function.
@@ -54,6 +59,9 @@
 #include <skipjack.h>
 #define CRYPT_KEY_LEN SKIPJACK_KEY_LEN
 #define CRYPT_BLOCK_LEN SKIPJACK_BLOCK_LEN
+#define CRYPT_TEST_VAL SKIPJACK_TEST_VAL
+#define CRYPT_TEST_KEY SKIPJACK_TEST_KEY
+#define CRYPT_TEST_CHK SKIPJACK_TEST_CHK
 #define crypt_enc(v,k) skipjack_enc((iu8*)(v),(iu8*)(k))
 #define crypt_dec(v,k) skipjack_dec((iu8*)(v),(iu8*)(k))
 
@@ -62,6 +70,9 @@
 #include <newdes-sk.h>
 #define CRYPT_KEY_LEN NEWDESSK_KEY_LEN
 #define CRYPT_BLOCK_LEN NEWDESSK_BLOCK_LEN
+#define CRYPT_TEST_VAL NEWDESSK_TEST_VAL
+#define CRYPT_TEST_KEY NEWDESSK_TEST_KEY
+#define CRYPT_TEST_CHK NEWDESSK_TEST_CHK
 #define crypt_enc(v,k) newdessk_enc((iu8*)(v),(iu8*)(k))
 #define crypt_dec(v,k) newdessk_dec((iu8*)(v),(iu8*)(k))
 
@@ -70,6 +81,9 @@
 #include <aes.h>
 #define CRYPT_KEY_LEN AES_KEY_LEN
 #define CRYPT_BLOCK_LEN AES_BLOCK_LEN
+#define CRYPT_TEST_VAL AES_TEST_VAL
+#define CRYPT_TEST_KEY AES_TEST_KEY
+#define CRYPT_TEST_CHK AES_TEST_CHK
 #define crypt_enc(v,k) aes_enc((iu8*)(v),(iu16*)(k),8)
 #define crypt_dec(v,k) aes_dec((iu8*)(v),(iu16*)(k),8)
 
index 763aebc..2f66cc7 100644 (file)
@@ -7,13 +7,17 @@
 #include <time.h>
 
 int main() {
-       iu8 inp[8]      = { 0x33, 0x22, 0x11, 0x00, 0xdd, 0xcc, 0xbb, 0xaa };
-       iu8 key[10]     = { 0x00, 0x99, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11 };
-       iu8 enc[8], dec[8];
-       iu8 chk[8]      = { 0x25, 0x87, 0xca, 0xe2, 0x7a, 0x12, 0xd3, 0x00 };
-       //iu8 tab[10][256];
+       iu8 inp[]       = { CRYPT_TEST_VAL };
+       iu8 key[]       = { CRYPT_TEST_KEY };
+       iu8 chk[]       = { CRYPT_TEST_CHK };
+       iu8 enc[CRYPT_BLOCK_LEN], dec[CRYPT_BLOCK_LEN];
+
+#ifdef BENCHMARK
        long i;
        clock_t elapsed;
+#endif
+
+       printf("Using crypt algorithm ID %d\n", CONF_WITH_CRYPT_ALGO);
 
        memcpy( enc, inp, 8 );
        crypt_enc( enc, key );
index e866325..c569d51 100644 (file)
 #define NEWDESSK_KEY_LEN       15      //!< NEWDES-SK key size (bytes).
 #define NEWDESSK_BLOCK_LEN     8       //!< NEWDES-SK block length (bytes).
 
+#define NEWDESSK_TEST_VAL 0x33, 0x22, 0x11, 0x00, 0xdd, 0xcc, 0xbb, 0xaa
+#define NEWDESSK_TEST_KEY 0x00, 0x99, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x00, 0x99, 0x88, 0x77, 0x66
+#define NEWDESSK_TEST_CHK 0x5a, 0xc9, 0xed, 0x97, 0xae, 0x85, 0x5d, 0xbe
+
 /*!    \brief NEWDES-SK encryption function.
 
        This function encrypts <EM>v</EM> with <EM>k</EM> and returns the
index b690447..f080c3c 100644 (file)
 #define SKIPJACK_KEY_LEN       10      //!< SKIPJACK key size (bytes).
 #define SKIPJACK_BLOCK_LEN     8       //!< SKIPJACK block length (bytes).
 
+#define SKIPJACK_TEST_VAL 0x33, 0x22, 0x11, 0x00, 0xdd, 0xcc, 0xbb, 0xaa
+#define SKIPJACK_TEST_KEY 0x00, 0x99, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11
+#define SKIPJACK_TEST_CHK 0x25, 0x87, 0xca, 0xe2, 0x7a, 0x12, 0xd3, 0x00
+
 /*! \brief Skipjack encryption function.
 
        This function encrypts <EM>v</EM> with <EM>k</EM> and returns the