Prechádzať zdrojové kódy

added libtomcrypt-1.17

Tom St Denis 18 rokov pred
rodič
commit
bbc52b9e1b
100 zmenil súbory, kde vykonal 3052 pridanie a 940 odobranie
  1. 1 1
      Doxyfile
  2. 3 11
      TODO
  3. 17 2
      changes
  4. 6 6
      crypt.lof
  5. 87 8
      crypt.tex
  6. 17 17
      demos/encrypt.c
  7. 13 13
      demos/hashsum.c
  8. 2 2
      demos/multi.c
  9. 39 39
      demos/tv_gen.c
  10. BIN
      doc/crypt.pdf
  11. 1634 0
      libtomcrypt.dsp
  12. 72 61
      makefile
  13. 60 57
      makefile.icc
  14. 60 57
      makefile.msvc
  15. 61 58
      makefile.shared
  16. 60 57
      makefile.unix
  17. 1 1
      notes/etc/saferp_optimizer.c
  18. 1 1
      notes/tech0005.txt
  19. 2 2
      src/ciphers/aes/aes.c
  20. 1 1
      src/ciphers/aes/aes_tab.c
  21. 6 6
      src/ciphers/anubis.c
  22. 2 2
      src/ciphers/blowfish.c
  23. 7 7
      src/ciphers/cast5.c
  24. 10 10
      src/ciphers/des.c
  25. 1 1
      src/ciphers/kasumi.c
  26. 2 2
      src/ciphers/khazad.c
  27. 2 2
      src/ciphers/kseed.c
  28. 303 0
      src/ciphers/multi2.c
  29. 2 2
      src/ciphers/noekeon.c
  30. 7 7
      src/ciphers/rc2.c
  31. 7 7
      src/ciphers/rc5.c
  32. 8 8
      src/ciphers/rc6.c
  33. 37 37
      src/ciphers/safer/safer.c
  34. 3 3
      src/ciphers/safer/safer_tab.c
  35. 8 8
      src/ciphers/safer/saferp.c
  36. 2 2
      src/ciphers/skipjack.c
  37. 22 22
      src/ciphers/twofish/twofish.c
  38. 4 4
      src/ciphers/twofish/twofish_tab.c
  39. 6 6
      src/ciphers/xtea.c
  40. 2 2
      src/encauth/ccm/ccm_memory.c
  41. 2 2
      src/encauth/ccm/ccm_test.c
  42. 2 2
      src/encauth/eax/eax_addheader.c
  43. 2 2
      src/encauth/eax/eax_decrypt.c
  44. 2 2
      src/encauth/eax/eax_decrypt_verify_memory.c
  45. 2 2
      src/encauth/eax/eax_done.c
  46. 2 2
      src/encauth/eax/eax_encrypt.c
  47. 2 2
      src/encauth/eax/eax_encrypt_authenticate_memory.c
  48. 5 5
      src/encauth/eax/eax_init.c
  49. 3 3
      src/encauth/eax/eax_test.c
  50. 5 5
      src/encauth/gcm/gcm_add_aad.c
  51. 3 3
      src/encauth/gcm/gcm_add_iv.c
  52. 3 3
      src/encauth/gcm/gcm_done.c
  53. 3 3
      src/encauth/gcm/gcm_gf_mult.c
  54. 5 5
      src/encauth/gcm/gcm_init.c
  55. 4 4
      src/encauth/gcm/gcm_memory.c
  56. 5 5
      src/encauth/gcm/gcm_mult_h.c
  57. 5 5
      src/encauth/gcm/gcm_process.c
  58. 3 3
      src/encauth/gcm/gcm_reset.c
  59. 2 2
      src/encauth/gcm/gcm_test.c
  60. 2 2
      src/encauth/ocb/ocb_decrypt.c
  61. 2 2
      src/encauth/ocb/ocb_decrypt_verify_memory.c
  62. 2 2
      src/encauth/ocb/ocb_done_decrypt.c
  63. 2 2
      src/encauth/ocb/ocb_done_encrypt.c
  64. 2 2
      src/encauth/ocb/ocb_encrypt.c
  65. 2 2
      src/encauth/ocb/ocb_encrypt_authenticate_memory.c
  66. 2 2
      src/encauth/ocb/ocb_init.c
  67. 2 2
      src/encauth/ocb/ocb_ntz.c
  68. 2 2
      src/encauth/ocb/ocb_shift_xor.c
  69. 3 3
      src/encauth/ocb/ocb_test.c
  70. 2 2
      src/encauth/ocb/s_ocb_done.c
  71. 2 2
      src/hashes/chc/chc.c
  72. 1 1
      src/hashes/helper/hash_file.c
  73. 1 1
      src/hashes/helper/hash_filehandle.c
  74. 1 1
      src/hashes/helper/hash_memory.c
  75. 1 1
      src/hashes/helper/hash_memory_multi.c
  76. 4 4
      src/hashes/md2.c
  77. 3 3
      src/hashes/md4.c
  78. 3 3
      src/hashes/md5.c
  79. 3 3
      src/hashes/rmd128.c
  80. 3 3
      src/hashes/rmd160.c
  81. 4 4
      src/hashes/rmd256.c
  82. 3 3
      src/hashes/rmd320.c
  83. 3 3
      src/hashes/sha1.c
  84. 2 2
      src/hashes/sha2/sha224.c
  85. 4 4
      src/hashes/sha2/sha256.c
  86. 2 2
      src/hashes/sha2/sha384.c
  87. 4 4
      src/hashes/sha2/sha512.c
  88. 2 2
      src/hashes/tiger.c
  89. 3 3
      src/hashes/whirl/whirl.c
  90. 1 1
      src/hashes/whirl/whirltab.c
  91. 2 2
      src/headers/tomcrypt.h
  92. 116 64
      src/headers/tomcrypt_cipher.h
  93. 100 97
      src/headers/tomcrypt_custom.h
  94. 45 45
      src/headers/tomcrypt_hash.h
  95. 20 17
      src/headers/tomcrypt_mac.h
  96. 2 2
      src/headers/tomcrypt_math.h
  97. 2 2
      src/headers/tomcrypt_misc.h
  98. 28 20
      src/headers/tomcrypt_pk.h
  99. 12 12
      src/headers/tomcrypt_pkcs.h
  100. 14 14
      src/headers/tomcrypt_prng.h

+ 1 - 1
Doxyfile

@@ -23,7 +23,7 @@ PROJECT_NAME           = LibTomCrypt
 # This could be handy for archiving the generated documentation or 
 # if some version control system is used.
 
-PROJECT_NUMBER         = 1.16
+PROJECT_NUMBER         = 1.17
 
 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
 # base path where the generated documentation will be put. 

+ 3 - 11
TODO

@@ -1,11 +1,3 @@
-stopped at ch12
--- needs examples for ecc/dsa!!! (and for asn.1)
-
-must have for v1.16
-- document PK build flags
-- document makefile flags [INSTALL_* for instance]
-- prepare manual for printing (both soft and hard cover)
-
-Nice to have [in order of precedence]
-- add X9.63 IES
-- add CPP macros like OpenSSL has for ASN1 (e.g. encode/decode functions, etc) shameless ripoff :-)
+for 1.18
+- document new ECC functions
+- add test for new functions

+ 17 - 2
changes

@@ -1,3 +1,18 @@
+May 12th, 2007
+v1.17 -- Cryptography Research Inc. contributed another small volley of patches, one to fix __WCHAR_DEFINED__ for BSD platforms, 
+         another to silence MSVC warnings.
+      -- Added LTC_XCBC_PURE to XCBC mode which lets you use it in three-key mode. 
+      -- [CRI] Added libtomcrypt.dsp for Visual C++ users.
+      -- [CRI] Added more functions for manipulating the ECC fixed point cache (including saving and loading)
+      -- [CRI] Modified ecc_make_key() to always produce keys smaller than base point order, for standards-compliance
+      -- Elliptic Semiconductor contributed XTS chaining mode to the cipher suite (subsequently optimized it)
+      -- Fixed xcbc_init() keylen when using single key mode.
+      -- Bruce Fortune pointed out a typo in the hmac_process() description in the manual.  Fixed.
+      -- Added variable width counter support to CTR mode
+      -- Fixed CMAC (aka OMAC) when using 64-bit block ciphers and LTC_FAST ... my bad.
+      -- Fixed bug in ecc_is_valid() that would basically always return true
+      -- renamed a lot of macros to add the LTC_ prefix [e.g. RIJNDAEL => LTC_RIJNDAEL]
+
 December 16th, 2006
 v1.16 -- Brian Gladman pointed out that a recent change to GCM broke how the IV was handled.  Currently the code complies against his test vectors
          so the code should be considered frozen now.
@@ -1551,6 +1566,6 @@ v0.02  -- Changed RC5 to only allow 12 to 24 rounds
 v0.01  -- We will call this the first version.
 
 /* $Source: /cvs/libtom/libtomcrypt/changes,v $ */
-/* $Revision: 1.274 $ */
-/* $Date: 2006/12/16 19:08:17 $ */
+/* $Revision: 1.288 $ */
+/* $Date: 2007/05/12 14:37:41 $ */
 

+ 6 - 6
crypt.lof

@@ -6,19 +6,19 @@
 \contentsline {figure}{\numberline {3.1}{\ignorespaces Built--In Software Ciphers}}{19}{figure.3.1}
 \contentsline {figure}{\numberline {3.2}{\ignorespaces Twofish Build Options}}{21}{figure.3.2}
 \addvspace {10\p@ }
-\contentsline {figure}{\numberline {4.1}{\ignorespaces Built--In Software Hashes}}{57}{figure.4.1}
+\contentsline {figure}{\numberline {4.1}{\ignorespaces Built--In Software Hashes}}{59}{figure.4.1}
 \addvspace {10\p@ }
 \addvspace {10\p@ }
-\contentsline {figure}{\numberline {6.1}{\ignorespaces List of Provided PRNGs}}{82}{figure.6.1}
+\contentsline {figure}{\numberline {6.1}{\ignorespaces List of Provided PRNGs}}{84}{figure.6.1}
 \addvspace {10\p@ }
 \addvspace {10\p@ }
 \addvspace {10\p@ }
-\contentsline {figure}{\numberline {9.1}{\ignorespaces DSA Key Sizes}}{119}{figure.9.1}
+\contentsline {figure}{\numberline {9.1}{\ignorespaces DSA Key Sizes}}{121}{figure.9.1}
 \addvspace {10\p@ }
-\contentsline {figure}{\numberline {10.1}{\ignorespaces List of ASN.1 Supported Types}}{127}{figure.10.1}
+\contentsline {figure}{\numberline {10.1}{\ignorespaces List of ASN.1 Supported Types}}{129}{figure.10.1}
 \addvspace {10\p@ }
 \addvspace {10\p@ }
-\contentsline {figure}{\numberline {12.1}{\ignorespaces RSA/DH Key Strength}}{149}{figure.12.1}
-\contentsline {figure}{\numberline {12.2}{\ignorespaces ECC Key Strength}}{149}{figure.12.2}
+\contentsline {figure}{\numberline {12.1}{\ignorespaces RSA/DH Key Strength}}{151}{figure.12.1}
+\contentsline {figure}{\numberline {12.2}{\ignorespaces ECC Key Strength}}{151}{figure.12.2}
 \addvspace {10\p@ }
 \addvspace {10\p@ }

+ 87 - 8
crypt.tex

@@ -190,7 +190,7 @@ The project is hereby released as public domain.
 \mysection{Patent Disclosure}
 
 The author (Tom St Denis) is not a patent lawyer so this section is not to be treated as legal advice.  To the best
-of the authors knowledge the only patent related issues within the library are the RC5 and RC6 symmetric block ciphers.  
+of the author's knowledge the only patent related issues within the library are the RC5 and RC6 symmetric block ciphers.  
 They can be removed from a build by simply commenting out the two appropriate lines in \textit{tomcrypt\_custom.h}.  The rest
 of the ciphers and hashes are patent free or under patents that have since expired.
 
@@ -616,8 +616,8 @@ As of this release the current cipher\_descriptors elements are the following:
      \hline AES & aes\_desc & 16 & 16, 24, 32 & 10, 12, 14 \\
                 & aes\_enc\_desc & 16 & 16, 24, 32 & 10, 12, 14 \\
      \hline Twofish & twofish\_desc & 16 & 16, 24, 32 & 16 \\
-     \hline DES & des\_desc & 8 & 7 & 16 \\
-     \hline 3DES (EDE mode) & des3\_desc & 8 & 21 & 16 \\
+     \hline DES & des\_desc & 8 & 8 & 16 \\
+     \hline 3DES (EDE mode) & des3\_desc & 8 & 24 & 16 \\
      \hline CAST5 (CAST-128) & cast5\_desc & 8 & 5 $\ldots$ 16 & 12, 16 \\
      \hline Noekeon & noekeon\_desc & 16 & 16 & 16 \\
      \hline Skipjack & skipjack\_desc & 8 & 10 & 32 \\
@@ -879,14 +879,37 @@ of the cipher you choose.  It is important that the IV  be random for each uniqu
 parameters \textit{key}, \textit{keylen} and \textit{num\_rounds} are the same as in the XXX\_setup() function call.  The final parameter 
 is a pointer to the structure you want to hold the information for the mode of operation.
 
+The routines return {\bf CRYPT\_OK} if the cipher initialized correctly, otherwise, they return an error code.  
 
+\subsubsection{CTR Mode}
 In the case of CTR mode there is an additional parameter \textit{ctr\_mode} which specifies the mode that the counter is to be used in.
 If \textbf{CTR\_COUNTER\_ LITTLE\_ENDIAN} was specified then the counter will be treated as a little endian value.  Otherwise, if 
 \textbf{CTR\_COUNTER\_BIG\_ENDIAN} was specified the counter will be treated as a big endian value.  As of v1.15 the RFC 3686 style of
 increment then encrypt is also supported.  By OR'ing \textbf{LTC\_CTR\_RFC3686} with the CTR \textit{mode} value, ctr\_start() will increment
 the counter before encrypting it for the first time.
 
-The routines return {\bf CRYPT\_OK} if the cipher initialized correctly, otherwise, they return an error code.  
+As of V1.17, the library supports variable length counters for CTR mode.  The (optional) counter length is specified by OR'ing the octet
+length of the counter against the \textit{ctr\_mode} parameter.  The default, zero, indicates that a full block length counter will be used.  This also
+ensures backwards compatibility with software that uses older versions of the library.
+
+\begin{small}
+\begin{verbatim}
+symmetric_CTR ctr;
+int           err;
+unsigned char IV[16], key[16];
+
+/* use a 32-bit little endian counter */
+if ((err = ctr_start(find_cipher("aes"),
+                     IV, key, 16, 0,
+                     CTR_COUNTER_LITTLE_ENDIAN | 4, 
+                     &ctr)) != CRYPT_OK) {
+   handle_error(err);
+}
+\end{verbatim}
+\end{small}
+
+Changing the counter size has little (really no) effect on the performance of the CTR chaining mode.  It is provided for compatibility
+with other software (and hardware) which have smaller fixed sized counters.
 
 \subsection{Encryption and Decryption}
 To actually encrypt or decrypt the following routines are provided:
@@ -1093,6 +1116,55 @@ To terminate the LRW state use the following:
 int lrw_done(symmetric_LRW *lrw);
 \end{verbatim}
 
+\subsection{XTS Mode}
+As of v1.17, LibTomCrypt supports XTS mode with code donated by Elliptic Semiconductor Inc.\footnote{www.ellipticsemi.com}.  
+XTS is a chaining mode for 128--bit block ciphers, recommended by IEEE (P1619) 
+for disk encryption.  It is meant to be an encryption mode with random access to the message data without compromising privacy.  It requires two private keys (of equal 
+length) to perform the encryption process.  Each encryption invocation includes a sector number or unique identifier specified as a 128--bit string.  
+
+To initialize XTS mode use the following function call:
+
+\index{xts\_start()}
+\begin{verbatim}
+int xts_start(                int  cipher,
+              const unsigned char *key1, 
+              const unsigned char *key2, 
+                    unsigned long  keylen,
+                              int  num_rounds, 
+                    symmetric_xts *xts)
+\end{verbatim}
+This will start the XTS mode with the two keys pointed to by \textit{key1} and \textit{key2} of length \textit{keylen} octets each.  
+
+To encrypt or decrypt a sector use the following calls:
+
+\index{xts\_encrypt()} \index{xts\_decrypt()}
+\begin{verbatim}
+int xts_encrypt(
+   const unsigned char *pt, unsigned long ptlen,
+         unsigned char *ct,
+   const unsigned char *tweak,
+         symmetric_xts *xts);
+
+int xts_decrypt(
+   const unsigned char *ct, unsigned long ptlen,
+         unsigned char *pt,
+   const unsigned char *tweak,
+         symmetric_xts *xts);
+\end{verbatim}
+The first will encrypt the plaintext pointed to by \textit{pt} of length \textit{ptlen} octets, and store the ciphertext in the array pointed to by 
+\textit{ct}.  It uses the 128--bit tweak pointed to by \textit{tweak} to encrypt the block.  The decrypt function performs the opposite operation.  Both 
+functions support ciphertext stealing (blocks that are not multiples of 16 bytes).  
+
+The P1619 specification states the tweak for sector number shall be represented as a 128--bit little endian string.  
+
+To terminate the XTS state call the following function:
+
+\index{xts\_done()}
+\begin{verbatim}
+void xts_done(symmetric_xts *xts);
+\end{verbatim}
+
+
 \subsection{F8 Mode}
 \index{F8 Mode}
 The F8 Chaining mode (see RFC 3711 for instance) is yet another chaining mode for block ciphers.  It behaves much like CTR mode in that it XORs a keystream
@@ -2098,8 +2170,8 @@ int hmac_process(         hmac_state *hmac,
                  const unsigned char *in, 
                        unsigned long  inlen);
 \end{verbatim}
-\textit{hmac} is the HMAC state you are working with. \textit{buf} is the array of octets to send into the HMAC process.  \textit{len} is the
-number of octets to process.  Like the hash process routines you can send the data in arbitrarily sized chunks. When you 
+\textit{hmac} is the HMAC state you are working with. \textit{in} is the array of octets to send into the HMAC process.  \textit{inlen} is the
+number of octets to process.  Like the hash process routines, you can send the data in arbitrarily sized chunks. When you 
 are finished with the HMAC process you must call the following function to get the HMAC code:
 \index{hmac\_done()}
 \begin{verbatim}
@@ -2511,6 +2583,13 @@ int xcbc_init(         xcbc_state *xcbc,
 This will initialize the XCBC--MAC state \textit{xcbc}, with the key specified in \textit{key} of length \textit{keylen} octets.  The cipher indicated
 by the \textit{cipher} index can be either a 64 or 128--bit block cipher.  This will return \textbf{CRYPT\_OK} on success.
 
+\index{LTC\_XCBC\_PURE}
+It is possible to use XCBC in a three key mode by OR'ing the value \textbf{LTC\_XCBC\_PURE} against the \textit{keylen} parameter.  In this mode, the key is
+interpretted as three keys.  If the cipher has a block size of $n$ octets, the first key is then $keylen - 2n$ octets and is the encryption key.  The next 
+$2n$ octets are the $K_1$ and $K_2$ padding keys (used on the last block).  For example, to use AES--192 \textit{keylen} should be $24 + 2 \cdot 16 = 56$ octets.
+The three keys are interpretted as if they were concatenated in the \textit{key} buffer.
+
+
 To process data through XCBC--MAC use the following function:
 
 \index{xcbc\_process()}
@@ -6485,5 +6564,5 @@ Since the function is given the entire RSA key (for private keys only) CRT is po
 \end{document}
 
 % $Source: /cvs/libtom/libtomcrypt/crypt.tex,v $   
-% $Revision: 1.123 $   
-% $Date: 2006/12/16 19:08:17 $ 
+% $Revision: 1.128 $   
+% $Date: 2007/03/10 23:59:54 $ 

+ 17 - 17
demos/encrypt.c

@@ -26,58 +26,58 @@ void register_algs(void)
 {
    int x;
    
-#ifdef RIJNDAEL
+#ifdef LTC_RIJNDAEL
   register_cipher (&aes_desc);
 #endif
-#ifdef BLOWFISH
+#ifdef LTC_BLOWFISH
   register_cipher (&blowfish_desc);
 #endif
-#ifdef XTEA
+#ifdef LTC_XTEA
   register_cipher (&xtea_desc);
 #endif
-#ifdef RC5
+#ifdef LTC_RC5
   register_cipher (&rc5_desc);
 #endif
-#ifdef RC6
+#ifdef LTC_RC6
   register_cipher (&rc6_desc);
 #endif
-#ifdef SAFERP
+#ifdef LTC_SAFERP
   register_cipher (&saferp_desc);
 #endif
-#ifdef TWOFISH
+#ifdef LTC_TWOFISH
   register_cipher (&twofish_desc);
 #endif
-#ifdef SAFER
+#ifdef LTC_SAFER
   register_cipher (&safer_k64_desc);
   register_cipher (&safer_sk64_desc);
   register_cipher (&safer_k128_desc);
   register_cipher (&safer_sk128_desc);
 #endif
-#ifdef RC2
+#ifdef LTC_RC2
   register_cipher (&rc2_desc);
 #endif
-#ifdef DES
+#ifdef LTC_DES
   register_cipher (&des_desc);
   register_cipher (&des3_desc);
 #endif
-#ifdef CAST5
+#ifdef LTC_CAST5
   register_cipher (&cast5_desc);
 #endif
-#ifdef NOEKEON
+#ifdef LTC_NOEKEON
   register_cipher (&noekeon_desc);
 #endif
-#ifdef SKIPJACK
+#ifdef LTC_SKIPJACK
   register_cipher (&skipjack_desc);
 #endif
-#ifdef KHAZAD
+#ifdef LTC_KHAZAD
   register_cipher (&khazad_desc);
 #endif
-#ifdef ANUBIS
+#ifdef LTC_ANUBIS
   register_cipher (&anubis_desc);
 #endif
 
    if (register_hash(&sha256_desc) == -1) {
-      printf("Error registering SHA256\n");
+      printf("Error registering LTC_SHA256\n");
       exit(-1);
    } 
 
@@ -144,7 +144,7 @@ int main(int argc, char *argv[])
 
    hash_idx = find_hash("sha256");
    if (hash_idx == -1) {
-      printf("SHA256 not found...?\n");
+      printf("LTC_SHA256 not found...?\n");
       exit(-1);
    }
 

+ 13 - 13
demos/hashsum.c

@@ -68,43 +68,43 @@ void register_algs(void)
 {
   int err;
 
-#ifdef TIGER
+#ifdef LTC_TIGER
   register_hash (&tiger_desc);
 #endif
-#ifdef MD2
+#ifdef LTC_MD2
   register_hash (&md2_desc);
 #endif
-#ifdef MD4
+#ifdef LTC_MD4
   register_hash (&md4_desc);
 #endif
-#ifdef MD5
+#ifdef LTC_MD5
   register_hash (&md5_desc);
 #endif
-#ifdef SHA1
+#ifdef LTC_SHA1
   register_hash (&sha1_desc);
 #endif
-#ifdef SHA224
+#ifdef LTC_SHA224
   register_hash (&sha224_desc);
 #endif
-#ifdef SHA256
+#ifdef LTC_SHA256
   register_hash (&sha256_desc);
 #endif
-#ifdef SHA384
+#ifdef LTC_SHA384
   register_hash (&sha384_desc);
 #endif
-#ifdef SHA512
+#ifdef LTC_SHA512
   register_hash (&sha512_desc);
 #endif
-#ifdef RIPEMD128
+#ifdef LTC_RIPEMD128
   register_hash (&rmd128_desc);
 #endif
-#ifdef RIPEMD160
+#ifdef LTC_RIPEMD160
   register_hash (&rmd160_desc);
 #endif
-#ifdef WHIRLPOOL
+#ifdef LTC_WHIRLPOOL
   register_hash (&whirlpool_desc);
 #endif
-#ifdef CHC_HASH
+#ifdef LTC_CHC_HASH
   register_hash(&chc_desc);
   if ((err = chc_register(register_cipher(&aes_enc_desc))) != CRYPT_OK) {
      printf("chc_register error: %s\n", error_to_string(err));

+ 2 - 2
demos/multi.c

@@ -33,7 +33,7 @@ int main(void)
       return EXIT_FAILURE;
    }
 
-/* HMAC */
+/* LTC_HMAC */
    len = sizeof(buf[0]);
    hmac_memory(find_hash("sha256"), key, 16, (unsigned char*)"hello", 5, buf[0], &len);
    len2 = sizeof(buf[0]);
@@ -55,7 +55,7 @@ int main(void)
       return EXIT_FAILURE;
    }
 
-/* OMAC */
+/* LTC_OMAC */
    len = sizeof(buf[0]);
    omac_memory(find_cipher("aes"), key, 16, (unsigned char*)"hello", 5, buf[0], &len);
    len2 = sizeof(buf[0]);

+ 39 - 39
demos/tv_gen.c

@@ -4,93 +4,93 @@ void reg_algs(void)
 {
   int err;
 
-#ifdef RIJNDAEL
+#ifdef LTC_RIJNDAEL
   register_cipher (&aes_desc);
 #endif
-#ifdef BLOWFISH
+#ifdef LTC_BLOWFISH
   register_cipher (&blowfish_desc);
 #endif
-#ifdef XTEA
+#ifdef LTC_XTEA
   register_cipher (&xtea_desc);
 #endif
-#ifdef RC5
+#ifdef LTC_RC5
   register_cipher (&rc5_desc);
 #endif
-#ifdef RC6
+#ifdef LTC_RC6
   register_cipher (&rc6_desc);
 #endif
-#ifdef SAFERP
+#ifdef LTC_SAFERP
   register_cipher (&saferp_desc);
 #endif
-#ifdef TWOFISH
+#ifdef LTC_TWOFISH
   register_cipher (&twofish_desc);
 #endif
-#ifdef SAFER
+#ifdef LTC_SAFER
   register_cipher (&safer_k64_desc);
   register_cipher (&safer_sk64_desc);
   register_cipher (&safer_k128_desc);
   register_cipher (&safer_sk128_desc);
 #endif
-#ifdef RC2
+#ifdef LTC_RC2
   register_cipher (&rc2_desc);
 #endif
-#ifdef DES
+#ifdef LTC_DES
   register_cipher (&des_desc);
   register_cipher (&des3_desc);
 #endif
-#ifdef CAST5
+#ifdef LTC_CAST5
   register_cipher (&cast5_desc);
 #endif
-#ifdef NOEKEON
+#ifdef LTC_NOEKEON
   register_cipher (&noekeon_desc);
 #endif
-#ifdef SKIPJACK
+#ifdef LTC_SKIPJACK
   register_cipher (&skipjack_desc);
 #endif
-#ifdef ANUBIS
+#ifdef LTC_ANUBIS
   register_cipher (&anubis_desc);
 #endif
-#ifdef KHAZAD
+#ifdef LTC_KHAZAD
   register_cipher (&khazad_desc);
 #endif
 
-#ifdef TIGER
+#ifdef LTC_TIGER
   register_hash (&tiger_desc);
 #endif
-#ifdef MD2
+#ifdef LTC_MD2
   register_hash (&md2_desc);
 #endif
-#ifdef MD4
+#ifdef LTC_MD4
   register_hash (&md4_desc);
 #endif
-#ifdef MD5
+#ifdef LTC_MD5
   register_hash (&md5_desc);
 #endif
-#ifdef SHA1
+#ifdef LTC_SHA1
   register_hash (&sha1_desc);
 #endif
-#ifdef SHA224
+#ifdef LTC_SHA224
   register_hash (&sha224_desc);
 #endif
-#ifdef SHA256
+#ifdef LTC_SHA256
   register_hash (&sha256_desc);
 #endif
-#ifdef SHA384
+#ifdef LTC_SHA384
   register_hash (&sha384_desc);
 #endif
-#ifdef SHA512
+#ifdef LTC_SHA512
   register_hash (&sha512_desc);
 #endif
-#ifdef RIPEMD128
+#ifdef LTC_RIPEMD128
   register_hash (&rmd128_desc);
 #endif
-#ifdef RIPEMD160
+#ifdef LTC_RIPEMD160
   register_hash (&rmd160_desc);
 #endif
-#ifdef WHIRLPOOL
+#ifdef LTC_WHIRLPOOL
   register_hash (&whirlpool_desc);
 #endif
-#ifdef CHC_HASH
+#ifdef LTC_CHC_HASH
   register_hash(&chc_desc);
   if ((err = chc_register(register_cipher(&aes_desc))) != CRYPT_OK) {
      printf("chc_register error: %s\n", error_to_string(err));
@@ -238,12 +238,12 @@ void hmac_gen(void)
    out = fopen("hmac_tv.txt", "w");
 
    fprintf(out, 
-"HMAC Tests.  In these tests messages of N bytes long (00,01,02,...,NN-1) are HMACed.  The initial key is\n"
-"of the same format (the same length as the HASH output size).  The HMAC key in step N+1 is the HMAC output of\n"
+"LTC_HMAC Tests.  In these tests messages of N bytes long (00,01,02,...,NN-1) are LTC_HMACed.  The initial key is\n"
+"of the same format (the same length as the HASH output size).  The LTC_HMAC key in step N+1 is the LTC_HMAC output of\n"
 "step N.\n\n");
 
    for (x = 0; hash_descriptor[x].name != NULL; x++) {
-      fprintf(out, "HMAC-%s\n", hash_descriptor[x].name);
+      fprintf(out, "LTC_HMAC-%s\n", hash_descriptor[x].name);
       
       /* initial key */
       for (y = 0; y < (int)hash_descriptor[x].hashsize; y++) {
@@ -290,8 +290,8 @@ void omac_gen(void)
    out = fopen("omac_tv.txt", "w");
 
    fprintf(out, 
-"OMAC Tests.  In these tests messages of N bytes long (00,01,02,...,NN-1) are OMAC'ed.  The initial key is\n"
-"of the same format (length specified per cipher).  The OMAC key in step N+1 is the OMAC output of\n"
+"LTC_OMAC Tests.  In these tests messages of N bytes long (00,01,02,...,NN-1) are LTC_OMAC'ed.  The initial key is\n"
+"of the same format (length specified per cipher).  The LTC_OMAC key in step N+1 is the LTC_OMAC output of\n"
 "step N (repeated as required to fill the array).\n\n");
 
    for (x = 0; cipher_descriptor[x].name != NULL; x++) {
@@ -303,7 +303,7 @@ void omac_gen(void)
       if (cipher_descriptor[x].keysize(&kl) != CRYPT_OK) {
          kl = cipher_descriptor[x].max_key_length;
       }
-      fprintf(out, "OMAC-%s (%d byte key)\n", cipher_descriptor[x].name, kl);
+      fprintf(out, "LTC_OMAC-%s (%d byte key)\n", cipher_descriptor[x].name, kl);
       
       /* initial key/block */
       for (y = 0; y < kl; y++) {
@@ -345,8 +345,8 @@ void pmac_gen(void)
    out = fopen("pmac_tv.txt", "w");
 
    fprintf(out, 
-"PMAC Tests.  In these tests messages of N bytes long (00,01,02,...,NN-1) are OMAC'ed.  The initial key is\n"
-"of the same format (length specified per cipher).  The OMAC key in step N+1 is the OMAC output of\n"
+"PMAC Tests.  In these tests messages of N bytes long (00,01,02,...,NN-1) are LTC_OMAC'ed.  The initial key is\n"
+"of the same format (length specified per cipher).  The LTC_OMAC key in step N+1 is the LTC_OMAC output of\n"
 "step N (repeated as required to fill the array).\n\n");
 
    for (x = 0; cipher_descriptor[x].name != NULL; x++) {
@@ -767,14 +767,14 @@ int main(void)
    reg_algs();
    printf("Generating hash   vectors..."); fflush(stdout); hash_gen();   printf("done\n");
    printf("Generating cipher vectors..."); fflush(stdout); cipher_gen(); printf("done\n");
-   printf("Generating HMAC   vectors..."); fflush(stdout); hmac_gen();   printf("done\n");
-   printf("Generating OMAC   vectors..."); fflush(stdout); omac_gen();   printf("done\n");
+   printf("Generating LTC_HMAC   vectors..."); fflush(stdout); hmac_gen();   printf("done\n");
+   printf("Generating LTC_OMAC   vectors..."); fflush(stdout); omac_gen();   printf("done\n");
    printf("Generating PMAC   vectors..."); fflush(stdout); pmac_gen();   printf("done\n");
    printf("Generating EAX    vectors..."); fflush(stdout); eax_gen();    printf("done\n");
    printf("Generating OCB    vectors..."); fflush(stdout); ocb_gen();    printf("done\n");
    printf("Generating CCM    vectors..."); fflush(stdout); ccm_gen();    printf("done\n");
    printf("Generating GCM    vectors..."); fflush(stdout); gcm_gen();    printf("done\n");
-   printf("Generating BASE64 vectors..."); fflush(stdout); base64_gen(); printf("done\n");
+   printf("Generating LTC_BASE64 vectors..."); fflush(stdout); base64_gen(); printf("done\n");
    printf("Generating MATH   vectors..."); fflush(stdout); math_gen();   printf("done\n");
    printf("Generating ECC    vectors..."); fflush(stdout); ecc_gen();    printf("done\n");
    printf("Generating LRW    vectors..."); fflush(stdout); lrw_gen();    printf("done\n");

BIN
doc/crypt.pdf


+ 1634 - 0
libtomcrypt.dsp

@@ -0,0 +1,1634 @@
+# Microsoft Developer Studio Project File - Name="libtomcrypt" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Static Library" 0x0104
+
+CFG=libtomcrypt - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "libtomcrypt.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "libtomcrypt.mak" CFG="libtomcrypt - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "libtomcrypt - Win32 Release" (based on "Win32 (x86) Static Library")
+!MESSAGE "libtomcrypt - Win32 Debug" (based on "Win32 (x86) Static Library")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName "libtomcrypt"
+# PROP Scc_LocalPath "."
+CPP=cl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "libtomcrypt - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /I "src\headers" /I "..\libtommath" /D "NDEBUG" /D "LTM_DESC" /D "WIN32" /D "_MBCS" /D "_LIB" /D "LTC_SOURCE" /D "USE_LTM" /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo /out:"Release\tomcrypt.lib"
+
+!ELSEIF  "$(CFG)" == "libtomcrypt - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
+# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "src\headers" /I "..\libtommath" /D "_DEBUG" /D "LTM_DESC" /D "WIN32" /D "_MBCS" /D "_LIB" /D "LTC_SOURCE" /D "USE_LTM" /YX /FD /GZ /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo /out:"Debug\tomcrypt.lib"
+
+!ENDIF 
+
+# Begin Target
+
+# Name "libtomcrypt - Win32 Release"
+# Name "libtomcrypt - Win32 Debug"
+# Begin Group "ciphers"
+
+# PROP Default_Filter ""
+# Begin Group "aes"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\ciphers\aes\aes.c
+
+!IF  "$(CFG)" == "libtomcrypt - Win32 Release"
+
+# PROP Ignore_Default_Tool 1
+# Begin Custom Build
+InputPath=.\src\ciphers\aes\aes.c
+
+BuildCmds= \
+	cl /nologo /MLd /W3 /Gm /GX /ZI /Od /I "src\headers" /I "..\libtommath" /D "_DEBUG" /D "LTM_DESC" /D "WIN32" /D "_MBCS" /D "_LIB" /D "LTC_SOURCE" /D "USE_LTM" /Fp"Release/libtomcrypt.pch" /YX /Fo"Release/" /Fd"Release/" /FD /GZ /c $(InputPath) \
+	cl /nologo /DENCRYPT_ONLY /MLd /W3 /Gm /GX /ZI /Od /I "src\headers" /I "..\libtommath" /D "_DEBUG" /D "LTM_DESC" /D "WIN32" /D "_MBCS" /D "_LIB" /D "LTC_SOURCE" /D "USE_LTM" /Fp"Release/libtomcrypt.pch" /YX /Fo"Release/aes_enc.obj" /Fd"Release/" /FD /GZ /c $(InputPath) \
+	
+
+"Release/aes.obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+   $(BuildCmds)
+
+"Release/aes_enc.obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+   $(BuildCmds)
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "libtomcrypt - Win32 Debug"
+
+# PROP Ignore_Default_Tool 1
+# Begin Custom Build
+InputPath=.\src\ciphers\aes\aes.c
+
+BuildCmds= \
+	cl /nologo /MLd /W3 /Gm /GX /ZI /Od /I "src\headers" /I "..\libtommath" /D "_DEBUG" /D "LTM_DESC" /D "WIN32" /D "_MBCS" /D "_LIB" /D "LTC_SOURCE" /D "USE_LTM" /Fp"Debug/libtomcrypt.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c $(InputPath) \
+	cl /nologo /DENCRYPT_ONLY /MLd /W3 /Gm /GX /ZI /Od /I "src\headers" /I "..\libtommath" /D "_DEBUG" /D "LTM_DESC" /D "WIN32" /D "_MBCS" /D "_LIB" /D "LTC_SOURCE" /D "USE_LTM" /Fp"Debug/libtomcrypt.pch" /YX /Fo"Debug/aes_enc.obj" /Fd"Debug/" /FD /GZ /c $(InputPath) \
+	
+
+"Debug/aes.obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+   $(BuildCmds)
+
+"Debug/aes_enc.obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+   $(BuildCmds)
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\ciphers\aes\aes_tab.c
+# PROP Exclude_From_Build 1
+# End Source File
+# End Group
+# Begin Group "safer"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\ciphers\safer\safer.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\ciphers\safer\safer_tab.c
+# PROP Exclude_From_Build 1
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\ciphers\safer\saferp.c
+# End Source File
+# End Group
+# Begin Group "twofish"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\ciphers\twofish\twofish.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\ciphers\twofish\twofish_tab.c
+# PROP Exclude_From_Build 1
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=.\src\ciphers\anubis.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\ciphers\blowfish.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\ciphers\cast5.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\ciphers\des.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\ciphers\kasumi.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\ciphers\khazad.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\ciphers\kseed.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\ciphers\multi2.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\ciphers\noekeon.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\ciphers\rc2.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\ciphers\rc5.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\ciphers\rc6.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\ciphers\skipjack.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\ciphers\xtea.c
+# End Source File
+# End Group
+# Begin Group "encauth"
+
+# PROP Default_Filter ""
+# Begin Group "ccm"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\encauth\ccm\ccm_memory.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\encauth\ccm\ccm_test.c
+# End Source File
+# End Group
+# Begin Group "eax"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\encauth\eax\eax_addheader.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\encauth\eax\eax_decrypt.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\encauth\eax\eax_decrypt_verify_memory.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\encauth\eax\eax_done.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\encauth\eax\eax_encrypt.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\encauth\eax\eax_encrypt_authenticate_memory.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\encauth\eax\eax_init.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\encauth\eax\eax_test.c
+# End Source File
+# End Group
+# Begin Group "gcm"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\encauth\gcm\gcm_add_aad.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\encauth\gcm\gcm_add_iv.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\encauth\gcm\gcm_done.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\encauth\gcm\gcm_gf_mult.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\encauth\gcm\gcm_init.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\encauth\gcm\gcm_memory.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\encauth\gcm\gcm_mult_h.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\encauth\gcm\gcm_process.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\encauth\gcm\gcm_reset.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\encauth\gcm\gcm_test.c
+# End Source File
+# End Group
+# Begin Group "ocb"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\encauth\ocb\ocb_decrypt.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\encauth\ocb\ocb_decrypt_verify_memory.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\encauth\ocb\ocb_done_decrypt.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\encauth\ocb\ocb_done_encrypt.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\encauth\ocb\ocb_encrypt.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\encauth\ocb\ocb_encrypt_authenticate_memory.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\encauth\ocb\ocb_init.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\encauth\ocb\ocb_ntz.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\encauth\ocb\ocb_shift_xor.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\encauth\ocb\ocb_test.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\encauth\ocb\s_ocb_done.c
+# End Source File
+# End Group
+# End Group
+# Begin Group "hashes"
+
+# PROP Default_Filter ""
+# Begin Group "helper"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\hashes\helper\hash_file.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\hashes\helper\hash_filehandle.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\hashes\helper\hash_memory.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\hashes\helper\hash_memory_multi.c
+# End Source File
+# End Group
+# Begin Group "sha2"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\hashes\sha2\sha224.c
+# PROP Exclude_From_Build 1
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\hashes\sha2\sha256.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\hashes\sha2\sha384.c
+# PROP Exclude_From_Build 1
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\hashes\sha2\sha512.c
+# End Source File
+# End Group
+# Begin Group "whirl"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\hashes\whirl\whirl.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\hashes\whirl\whirltab.c
+# PROP Exclude_From_Build 1
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=.\src\hashes\chc\chc.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\hashes\md2.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\hashes\md4.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\hashes\md5.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\hashes\rmd128.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\hashes\rmd160.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\hashes\rmd256.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\hashes\rmd320.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\hashes\sha1.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\hashes\tiger.c
+# End Source File
+# End Group
+# Begin Group "mac"
+
+# PROP Default_Filter ""
+# Begin Group "f9"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\mac\f9\f9_done.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\f9\f9_file.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\f9\f9_init.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\f9\f9_memory.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\f9\f9_memory_multi.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\f9\f9_process.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\f9\f9_test.c
+# End Source File
+# End Group
+# Begin Group "hmac"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\mac\hmac\hmac_done.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\hmac\hmac_file.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\hmac\hmac_init.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\hmac\hmac_memory.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\hmac\hmac_memory_multi.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\hmac\hmac_process.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\hmac\hmac_test.c
+# End Source File
+# End Group
+# Begin Group "omac"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\mac\omac\omac_done.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\omac\omac_file.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\omac\omac_init.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\omac\omac_memory.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\omac\omac_memory_multi.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\omac\omac_process.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\omac\omac_test.c
+# End Source File
+# End Group
+# Begin Group "pelican"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\mac\pelican\pelican.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\pelican\pelican_memory.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\pelican\pelican_test.c
+# End Source File
+# End Group
+# Begin Group "pmac"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\mac\pmac\pmac_done.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\pmac\pmac_file.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\pmac\pmac_init.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\pmac\pmac_memory.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\pmac\pmac_memory_multi.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\pmac\pmac_ntz.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\pmac\pmac_process.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\pmac\pmac_shift_xor.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\pmac\pmac_test.c
+# End Source File
+# End Group
+# Begin Group "xcbc"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\mac\xcbc\xcbc_done.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\xcbc\xcbc_file.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\xcbc\xcbc_init.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\xcbc\xcbc_memory.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\xcbc\xcbc_memory_multi.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\xcbc\xcbc_process.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mac\xcbc\xcbc_test.c
+# End Source File
+# End Group
+# End Group
+# Begin Group "math"
+
+# PROP Default_Filter ""
+# Begin Group "fp"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\math\fp\ltc_ecc_fp_mulmod.c
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=.\src\math\gmp_desc.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\math\ltm_desc.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\math\multi.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\math\rand_prime.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\math\tfm_desc.c
+# End Source File
+# End Group
+# Begin Group "misc"
+
+# PROP Default_Filter ""
+# Begin Group "base64"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\misc\base64\base64_decode.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\misc\base64\base64_encode.c
+# End Source File
+# End Group
+# Begin Group "crypt"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\misc\crypt\crypt.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\misc\crypt\crypt_argchk.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\misc\crypt\crypt_cipher_descriptor.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\misc\crypt\crypt_cipher_is_valid.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\misc\crypt\crypt_find_cipher.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\misc\crypt\crypt_find_cipher_any.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\misc\crypt\crypt_find_cipher_id.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\misc\crypt\crypt_find_hash.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\misc\crypt\crypt_find_hash_any.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\misc\crypt\crypt_find_hash_id.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\misc\crypt\crypt_find_hash_oid.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\misc\crypt\crypt_find_prng.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\misc\crypt\crypt_fsa.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\misc\crypt\crypt_hash_descriptor.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\misc\crypt\crypt_hash_is_valid.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\misc\crypt\crypt_ltc_mp_descriptor.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\misc\crypt\crypt_prng_descriptor.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\misc\crypt\crypt_prng_is_valid.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\misc\crypt\crypt_register_cipher.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\misc\crypt\crypt_register_hash.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\misc\crypt\crypt_register_prng.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\misc\crypt\crypt_unregister_cipher.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\misc\crypt\crypt_unregister_hash.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\misc\crypt\crypt_unregister_prng.c
+# End Source File
+# End Group
+# Begin Group "pkcs"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\misc\pkcs5\pkcs_5_1.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\misc\pkcs5\pkcs_5_2.c
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=.\src\misc\burn_stack.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\misc\error_to_string.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\misc\zeromem.c
+# End Source File
+# End Group
+# Begin Group "modes"
+
+# PROP Default_Filter ""
+# Begin Group "cbc"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\modes\cbc\cbc_decrypt.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\cbc\cbc_done.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\cbc\cbc_encrypt.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\cbc\cbc_getiv.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\cbc\cbc_setiv.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\cbc\cbc_start.c
+# End Source File
+# End Group
+# Begin Group "cfb"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\modes\cfb\cfb_decrypt.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\cfb\cfb_done.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\cfb\cfb_encrypt.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\cfb\cfb_getiv.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\cfb\cfb_setiv.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\cfb\cfb_start.c
+# End Source File
+# End Group
+# Begin Group "ctr"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\modes\ctr\ctr_decrypt.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\ctr\ctr_done.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\ctr\ctr_encrypt.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\ctr\ctr_getiv.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\ctr\ctr_setiv.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\ctr\ctr_start.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\ctr\ctr_test.c
+# End Source File
+# End Group
+# Begin Group "ecb"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\modes\ecb\ecb_decrypt.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\ecb\ecb_done.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\ecb\ecb_encrypt.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\ecb\ecb_start.c
+# End Source File
+# End Group
+# Begin Group "f8"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\modes\f8\f8_decrypt.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\f8\f8_done.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\f8\f8_encrypt.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\f8\f8_getiv.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\f8\f8_setiv.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\f8\f8_start.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\f8\f8_test_mode.c
+# End Source File
+# End Group
+# Begin Group "lrw"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\modes\lrw\lrw_decrypt.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\lrw\lrw_done.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\lrw\lrw_encrypt.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\lrw\lrw_getiv.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\lrw\lrw_process.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\lrw\lrw_setiv.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\lrw\lrw_start.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\lrw\lrw_test.c
+# End Source File
+# End Group
+# Begin Group "ofb"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\modes\ofb\ofb_decrypt.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\ofb\ofb_done.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\ofb\ofb_encrypt.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\ofb\ofb_getiv.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\ofb\ofb_setiv.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\ofb\ofb_start.c
+# End Source File
+# End Group
+# Begin Group "xts"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\modes\xts\xts_decrypt.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\xts\xts_done.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\xts\xts_encrypt.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\xts\xts_init.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\xts\xts_mult_x.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\modes\xts\xts_test.c
+# End Source File
+# End Group
+# End Group
+# Begin Group "pk"
+
+# PROP Default_Filter ""
+# Begin Group "asn1"
+
+# PROP Default_Filter ""
+# Begin Group "der"
+
+# PROP Default_Filter ""
+# Begin Group "bit"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\bit\der_decode_bit_string.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\bit\der_encode_bit_string.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\bit\der_length_bit_string.c
+# End Source File
+# End Group
+# Begin Group "boolean"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\boolean\der_decode_boolean.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\boolean\der_encode_boolean.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\boolean\der_length_boolean.c
+# End Source File
+# End Group
+# Begin Group "choice"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\choice\der_decode_choice.c
+# End Source File
+# End Group
+# Begin Group "ia5"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\ia5\der_decode_ia5_string.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\ia5\der_encode_ia5_string.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\ia5\der_length_ia5_string.c
+# End Source File
+# End Group
+# Begin Group "integer"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\integer\der_decode_integer.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\integer\der_encode_integer.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\integer\der_length_integer.c
+# End Source File
+# End Group
+# Begin Group "object_identifier"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\object_identifier\der_decode_object_identifier.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\object_identifier\der_encode_object_identifier.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\object_identifier\der_length_object_identifier.c
+# End Source File
+# End Group
+# Begin Group "octet"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\octet\der_decode_octet_string.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\octet\der_encode_octet_string.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\octet\der_length_octet_string.c
+# End Source File
+# End Group
+# Begin Group "printable_string"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\printable_string\der_decode_printable_string.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\printable_string\der_encode_printable_string.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\printable_string\der_length_printable_string.c
+# End Source File
+# End Group
+# Begin Group "sequence"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\sequence\der_decode_sequence_ex.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\sequence\der_decode_sequence_flexi.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\sequence\der_decode_sequence_multi.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\sequence\der_encode_sequence_ex.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\sequence\der_encode_sequence_multi.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\sequence\der_length_sequence.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\sequence\der_sequence_free.c
+# End Source File
+# End Group
+# Begin Group "set"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\set\der_encode_set.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\set\der_encode_setof.c
+# End Source File
+# End Group
+# Begin Group "short_integer"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\short_integer\der_decode_short_integer.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\short_integer\der_encode_short_integer.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\short_integer\der_length_short_integer.c
+# End Source File
+# End Group
+# Begin Group "utctime"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\utctime\der_decode_utctime.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\utctime\der_encode_utctime.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\utctime\der_length_utctime.c
+# End Source File
+# End Group
+# Begin Group "utf8"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\utf8\der_decode_utf8_string.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\utf8\der_encode_utf8_string.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\asn1\der\utf8\der_length_utf8_string.c
+# End Source File
+# End Group
+# End Group
+# End Group
+# Begin Group "dsa"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\pk\dsa\dsa_decrypt_key.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\dsa\dsa_encrypt_key.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\dsa\dsa_export.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\dsa\dsa_free.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\dsa\dsa_import.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\dsa\dsa_make_key.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\dsa\dsa_shared_secret.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\dsa\dsa_sign_hash.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\dsa\dsa_verify_hash.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\dsa\dsa_verify_key.c
+# End Source File
+# End Group
+# Begin Group "ecc"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\pk\ecc\ecc.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\ecc\ecc_ansi_x963_export.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\ecc\ecc_ansi_x963_import.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\ecc\ecc_decrypt_key.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\ecc\ecc_encrypt_key.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\ecc\ecc_export.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\ecc\ecc_free.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\ecc\ecc_get_size.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\ecc\ecc_import.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\ecc\ecc_make_key.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\ecc\ecc_shared_secret.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\ecc\ecc_sign_hash.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\ecc\ecc_sizes.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\ecc\ecc_test.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\ecc\ecc_verify_hash.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\ecc\ltc_ecc_is_valid_idx.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\ecc\ltc_ecc_map.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\ecc\ltc_ecc_mul2add.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\ecc\ltc_ecc_mulmod.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\ecc\ltc_ecc_mulmod_timing.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\ecc\ltc_ecc_points.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\ecc\ltc_ecc_projective_add_point.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\ecc\ltc_ecc_projective_dbl_point.c
+# End Source File
+# End Group
+# Begin Group "katja"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\pk\katja\katja_decrypt_key.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\katja\katja_encrypt_key.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\katja\katja_export.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\katja\katja_exptmod.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\katja\katja_free.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\katja\katja_import.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\katja\katja_make_key.c
+# End Source File
+# End Group
+# Begin Group "pkcs1"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\pk\pkcs1\pkcs_1_i2osp.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\pkcs1\pkcs_1_mgf1.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\pkcs1\pkcs_1_oaep_decode.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\pkcs1\pkcs_1_oaep_encode.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\pkcs1\pkcs_1_os2ip.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\pkcs1\pkcs_1_pss_decode.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\pkcs1\pkcs_1_pss_encode.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\pkcs1\pkcs_1_v1_5_decode.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\pkcs1\pkcs_1_v1_5_encode.c
+# End Source File
+# End Group
+# Begin Group "rsa"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\pk\rsa\rsa_decrypt_key.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\rsa\rsa_encrypt_key.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\rsa\rsa_export.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\rsa\rsa_exptmod.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\rsa\rsa_free.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\rsa\rsa_import.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\rsa\rsa_make_key.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\rsa\rsa_sign_hash.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\pk\rsa\rsa_verify_hash.c
+# End Source File
+# End Group
+# End Group
+# Begin Group "prngs"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\prngs\fortuna.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\prngs\rc4.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\prngs\rng_get_bytes.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\prngs\rng_make_prng.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\prngs\sober128.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\prngs\sober128tab.c
+# PROP Exclude_From_Build 1
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\prngs\sprng.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\prngs\yarrow.c
+# End Source File
+# End Group
+# Begin Group "headers"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\headers\tomcrypt.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\headers\tomcrypt_argchk.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\headers\tomcrypt_cfg.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\headers\tomcrypt_cipher.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\headers\tomcrypt_custom.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\headers\tomcrypt_hash.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\headers\tomcrypt_mac.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\headers\tomcrypt_macros.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\headers\tomcrypt_math.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\headers\tomcrypt_misc.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\headers\tomcrypt_pk.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\headers\tomcrypt_pkcs.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\headers\tomcrypt_prng.h
+# End Source File
+# End Group
+# End Target
+# End Project

+ 72 - 61
makefile

@@ -4,7 +4,9 @@
 # Modified by Clay Culver
 
 # The version
-VERSION=1.16
+VERSION=1.17
+
+PLATFORM := $(shell uname | sed -e 's/_.*//')
 
 # Compiler and Linker Names
 #CC=gcc
@@ -20,7 +22,11 @@ endif
 
 # ranlib tools
 ifndef RANLIB
-   RANLIB=ranlib
+ifeq ($(PLATFORM), Darwin)
+RANLIB=ranlib -c
+else
+RANLIB=ranlib
+endif
 endif
 
 # Compilation flags. Note the += does not write over the user's CFLAGS!
@@ -104,27 +110,28 @@ endif
 #START_INS
 OBJECTS=src/ciphers/aes/aes_enc.o src/ciphers/aes/aes.o src/ciphers/anubis.o src/ciphers/blowfish.o \
 src/ciphers/cast5.o src/ciphers/des.o src/ciphers/kasumi.o src/ciphers/khazad.o src/ciphers/kseed.o \
-src/ciphers/noekeon.o src/ciphers/rc2.o src/ciphers/rc5.o src/ciphers/rc6.o src/ciphers/safer/safer.o \
-src/ciphers/safer/safer_tab.o src/ciphers/safer/saferp.o src/ciphers/skipjack.o \
-src/ciphers/twofish/twofish.o src/ciphers/xtea.o src/encauth/ccm/ccm_memory.o \
+src/ciphers/multi2.o src/ciphers/noekeon.o src/ciphers/rc2.o src/ciphers/rc5.o src/ciphers/rc6.o \
+src/ciphers/safer/safer.o src/ciphers/safer/saferp.o src/ciphers/safer/safer_tab.o \
+src/ciphers/skipjack.o src/ciphers/twofish/twofish.o src/ciphers/xtea.o src/encauth/ccm/ccm_memory.o \
 src/encauth/ccm/ccm_test.o src/encauth/eax/eax_addheader.o src/encauth/eax/eax_decrypt.o \
-src/encauth/eax/eax_decrypt_verify_memory.o src/encauth/eax/eax_done.o src/encauth/eax/eax_encrypt.o \
-src/encauth/eax/eax_encrypt_authenticate_memory.o src/encauth/eax/eax_init.o \
-src/encauth/eax/eax_test.o src/encauth/gcm/gcm_add_aad.o src/encauth/gcm/gcm_add_iv.o \
-src/encauth/gcm/gcm_done.o src/encauth/gcm/gcm_gf_mult.o src/encauth/gcm/gcm_init.o \
-src/encauth/gcm/gcm_memory.o src/encauth/gcm/gcm_mult_h.o src/encauth/gcm/gcm_process.o \
-src/encauth/gcm/gcm_reset.o src/encauth/gcm/gcm_test.o src/encauth/ocb/ocb_decrypt.o \
-src/encauth/ocb/ocb_decrypt_verify_memory.o src/encauth/ocb/ocb_done_decrypt.o \
-src/encauth/ocb/ocb_done_encrypt.o src/encauth/ocb/ocb_encrypt.o \
-src/encauth/ocb/ocb_encrypt_authenticate_memory.o src/encauth/ocb/ocb_init.o src/encauth/ocb/ocb_ntz.o \
-src/encauth/ocb/ocb_shift_xor.o src/encauth/ocb/ocb_test.o src/encauth/ocb/s_ocb_done.o \
-src/hashes/chc/chc.o src/hashes/helper/hash_file.o src/hashes/helper/hash_filehandle.o \
-src/hashes/helper/hash_memory.o src/hashes/helper/hash_memory_multi.o src/hashes/md2.o src/hashes/md4.o \
-src/hashes/md5.o src/hashes/rmd128.o src/hashes/rmd160.o src/hashes/rmd256.o src/hashes/rmd320.o \
-src/hashes/sha1.o src/hashes/sha2/sha256.o src/hashes/sha2/sha512.o src/hashes/tiger.o \
-src/hashes/whirl/whirl.o src/mac/f9/f9_done.o src/mac/f9/f9_file.o src/mac/f9/f9_init.o \
-src/mac/f9/f9_memory.o src/mac/f9/f9_memory_multi.o src/mac/f9/f9_process.o src/mac/f9/f9_test.o \
-src/mac/hmac/hmac_done.o src/mac/hmac/hmac_file.o src/mac/hmac/hmac_init.o src/mac/hmac/hmac_memory.o \
+src/encauth/eax/eax_decrypt_verify_memory.o src/encauth/eax/eax_done.o \
+src/encauth/eax/eax_encrypt_authenticate_memory.o src/encauth/eax/eax_encrypt.o \
+src/encauth/eax/eax_init.o src/encauth/eax/eax_test.o src/encauth/gcm/gcm_add_aad.o \
+src/encauth/gcm/gcm_add_iv.o src/encauth/gcm/gcm_done.o src/encauth/gcm/gcm_gf_mult.o \
+src/encauth/gcm/gcm_init.o src/encauth/gcm/gcm_memory.o src/encauth/gcm/gcm_mult_h.o \
+src/encauth/gcm/gcm_process.o src/encauth/gcm/gcm_reset.o src/encauth/gcm/gcm_test.o \
+src/encauth/ocb/ocb_decrypt.o src/encauth/ocb/ocb_decrypt_verify_memory.o \
+src/encauth/ocb/ocb_done_decrypt.o src/encauth/ocb/ocb_done_encrypt.o \
+src/encauth/ocb/ocb_encrypt_authenticate_memory.o src/encauth/ocb/ocb_encrypt.o \
+src/encauth/ocb/ocb_init.o src/encauth/ocb/ocb_ntz.o src/encauth/ocb/ocb_shift_xor.o \
+src/encauth/ocb/ocb_test.o src/encauth/ocb/s_ocb_done.o src/hashes/chc/chc.o \
+src/hashes/helper/hash_file.o src/hashes/helper/hash_filehandle.o src/hashes/helper/hash_memory.o \
+src/hashes/helper/hash_memory_multi.o src/hashes/md2.o src/hashes/md4.o src/hashes/md5.o \
+src/hashes/rmd128.o src/hashes/rmd160.o src/hashes/rmd256.o src/hashes/rmd320.o src/hashes/sha1.o \
+src/hashes/sha2/sha256.o src/hashes/sha2/sha512.o src/hashes/tiger.o src/hashes/whirl/whirl.o \
+src/mac/f9/f9_done.o src/mac/f9/f9_file.o src/mac/f9/f9_init.o src/mac/f9/f9_memory.o \
+src/mac/f9/f9_memory_multi.o src/mac/f9/f9_process.o src/mac/f9/f9_test.o src/mac/hmac/hmac_done.o \
+src/mac/hmac/hmac_file.o src/mac/hmac/hmac_init.o src/mac/hmac/hmac_memory.o \
 src/mac/hmac/hmac_memory_multi.o src/mac/hmac/hmac_process.o src/mac/hmac/hmac_test.o \
 src/mac/omac/omac_done.o src/mac/omac/omac_file.o src/mac/omac/omac_init.o src/mac/omac/omac_memory.o \
 src/mac/omac/omac_memory_multi.o src/mac/omac/omac_process.o src/mac/omac/omac_test.o \
@@ -136,39 +143,41 @@ src/mac/xcbc/xcbc_file.o src/mac/xcbc/xcbc_init.o src/mac/xcbc/xcbc_memory.o \
 src/mac/xcbc/xcbc_memory_multi.o src/mac/xcbc/xcbc_process.o src/mac/xcbc/xcbc_test.o \
 src/math/fp/ltc_ecc_fp_mulmod.o src/math/gmp_desc.o src/math/ltm_desc.o src/math/multi.o \
 src/math/rand_prime.o src/math/tfm_desc.o src/misc/base64/base64_decode.o \
-src/misc/base64/base64_encode.o src/misc/burn_stack.o src/misc/crypt/crypt.o \
-src/misc/crypt/crypt_argchk.o src/misc/crypt/crypt_cipher_descriptor.o \
-src/misc/crypt/crypt_cipher_is_valid.o src/misc/crypt/crypt_find_cipher.o \
-src/misc/crypt/crypt_find_cipher_any.o src/misc/crypt/crypt_find_cipher_id.o \
-src/misc/crypt/crypt_find_hash.o src/misc/crypt/crypt_find_hash_any.o \
-src/misc/crypt/crypt_find_hash_id.o src/misc/crypt/crypt_find_hash_oid.o \
-src/misc/crypt/crypt_find_prng.o src/misc/crypt/crypt_fsa.o src/misc/crypt/crypt_hash_descriptor.o \
-src/misc/crypt/crypt_hash_is_valid.o src/misc/crypt/crypt_ltc_mp_descriptor.o \
-src/misc/crypt/crypt_prng_descriptor.o src/misc/crypt/crypt_prng_is_valid.o \
-src/misc/crypt/crypt_register_cipher.o src/misc/crypt/crypt_register_hash.o \
-src/misc/crypt/crypt_register_prng.o src/misc/crypt/crypt_unregister_cipher.o \
-src/misc/crypt/crypt_unregister_hash.o src/misc/crypt/crypt_unregister_prng.o \
-src/misc/error_to_string.o src/misc/pkcs5/pkcs_5_1.o src/misc/pkcs5/pkcs_5_2.o src/misc/zeromem.o \
-src/modes/cbc/cbc_decrypt.o src/modes/cbc/cbc_done.o src/modes/cbc/cbc_encrypt.o \
-src/modes/cbc/cbc_getiv.o src/modes/cbc/cbc_setiv.o src/modes/cbc/cbc_start.o \
-src/modes/cfb/cfb_decrypt.o src/modes/cfb/cfb_done.o src/modes/cfb/cfb_encrypt.o \
-src/modes/cfb/cfb_getiv.o src/modes/cfb/cfb_setiv.o src/modes/cfb/cfb_start.o \
-src/modes/ctr/ctr_decrypt.o src/modes/ctr/ctr_done.o src/modes/ctr/ctr_encrypt.o \
-src/modes/ctr/ctr_getiv.o src/modes/ctr/ctr_setiv.o src/modes/ctr/ctr_start.o src/modes/ctr/ctr_test.o \
-src/modes/ecb/ecb_decrypt.o src/modes/ecb/ecb_done.o src/modes/ecb/ecb_encrypt.o \
-src/modes/ecb/ecb_start.o src/modes/f8/f8_decrypt.o src/modes/f8/f8_done.o src/modes/f8/f8_encrypt.o \
-src/modes/f8/f8_getiv.o src/modes/f8/f8_setiv.o src/modes/f8/f8_start.o src/modes/f8/f8_test_mode.o \
-src/modes/lrw/lrw_decrypt.o src/modes/lrw/lrw_done.o src/modes/lrw/lrw_encrypt.o \
-src/modes/lrw/lrw_getiv.o src/modes/lrw/lrw_process.o src/modes/lrw/lrw_setiv.o \
-src/modes/lrw/lrw_start.o src/modes/lrw/lrw_test.o src/modes/ofb/ofb_decrypt.o src/modes/ofb/ofb_done.o \
-src/modes/ofb/ofb_encrypt.o src/modes/ofb/ofb_getiv.o src/modes/ofb/ofb_setiv.o \
-src/modes/ofb/ofb_start.o src/pk/asn1/der/bit/der_decode_bit_string.o \
-src/pk/asn1/der/bit/der_encode_bit_string.o src/pk/asn1/der/bit/der_length_bit_string.o \
-src/pk/asn1/der/boolean/der_decode_boolean.o src/pk/asn1/der/boolean/der_encode_boolean.o \
-src/pk/asn1/der/boolean/der_length_boolean.o src/pk/asn1/der/choice/der_decode_choice.o \
-src/pk/asn1/der/ia5/der_decode_ia5_string.o src/pk/asn1/der/ia5/der_encode_ia5_string.o \
-src/pk/asn1/der/ia5/der_length_ia5_string.o src/pk/asn1/der/integer/der_decode_integer.o \
-src/pk/asn1/der/integer/der_encode_integer.o src/pk/asn1/der/integer/der_length_integer.o \
+src/misc/base64/base64_encode.o src/misc/burn_stack.o src/misc/crypt/crypt_argchk.o \
+src/misc/crypt/crypt.o src/misc/crypt/crypt_cipher_descriptor.o src/misc/crypt/crypt_cipher_is_valid.o \
+src/misc/crypt/crypt_find_cipher_any.o src/misc/crypt/crypt_find_cipher.o \
+src/misc/crypt/crypt_find_cipher_id.o src/misc/crypt/crypt_find_hash_any.o \
+src/misc/crypt/crypt_find_hash.o src/misc/crypt/crypt_find_hash_id.o \
+src/misc/crypt/crypt_find_hash_oid.o src/misc/crypt/crypt_find_prng.o src/misc/crypt/crypt_fsa.o \
+src/misc/crypt/crypt_hash_descriptor.o src/misc/crypt/crypt_hash_is_valid.o \
+src/misc/crypt/crypt_ltc_mp_descriptor.o src/misc/crypt/crypt_prng_descriptor.o \
+src/misc/crypt/crypt_prng_is_valid.o src/misc/crypt/crypt_register_cipher.o \
+src/misc/crypt/crypt_register_hash.o src/misc/crypt/crypt_register_prng.o \
+src/misc/crypt/crypt_unregister_cipher.o src/misc/crypt/crypt_unregister_hash.o \
+src/misc/crypt/crypt_unregister_prng.o src/misc/error_to_string.o src/misc/pkcs5/pkcs_5_1.o \
+src/misc/pkcs5/pkcs_5_2.o src/misc/zeromem.o src/modes/cbc/cbc_decrypt.o src/modes/cbc/cbc_done.o \
+src/modes/cbc/cbc_encrypt.o src/modes/cbc/cbc_getiv.o src/modes/cbc/cbc_setiv.o \
+src/modes/cbc/cbc_start.o src/modes/cfb/cfb_decrypt.o src/modes/cfb/cfb_done.o \
+src/modes/cfb/cfb_encrypt.o src/modes/cfb/cfb_getiv.o src/modes/cfb/cfb_setiv.o \
+src/modes/cfb/cfb_start.o src/modes/ctr/ctr_decrypt.o src/modes/ctr/ctr_done.o \
+src/modes/ctr/ctr_encrypt.o src/modes/ctr/ctr_getiv.o src/modes/ctr/ctr_setiv.o \
+src/modes/ctr/ctr_start.o src/modes/ctr/ctr_test.o src/modes/ecb/ecb_decrypt.o src/modes/ecb/ecb_done.o \
+src/modes/ecb/ecb_encrypt.o src/modes/ecb/ecb_start.o src/modes/f8/f8_decrypt.o src/modes/f8/f8_done.o \
+src/modes/f8/f8_encrypt.o src/modes/f8/f8_getiv.o src/modes/f8/f8_setiv.o src/modes/f8/f8_start.o \
+src/modes/f8/f8_test_mode.o src/modes/lrw/lrw_decrypt.o src/modes/lrw/lrw_done.o \
+src/modes/lrw/lrw_encrypt.o src/modes/lrw/lrw_getiv.o src/modes/lrw/lrw_process.o \
+src/modes/lrw/lrw_setiv.o src/modes/lrw/lrw_start.o src/modes/lrw/lrw_test.o \
+src/modes/ofb/ofb_decrypt.o src/modes/ofb/ofb_done.o src/modes/ofb/ofb_encrypt.o \
+src/modes/ofb/ofb_getiv.o src/modes/ofb/ofb_setiv.o src/modes/ofb/ofb_start.o \
+src/modes/xts/xts_decrypt.o src/modes/xts/xts_done.o src/modes/xts/xts_encrypt.o \
+src/modes/xts/xts_init.o src/modes/xts/xts_mult_x.o src/modes/xts/xts_test.o \
+src/pk/asn1/der/bit/der_decode_bit_string.o src/pk/asn1/der/bit/der_encode_bit_string.o \
+src/pk/asn1/der/bit/der_length_bit_string.o src/pk/asn1/der/boolean/der_decode_boolean.o \
+src/pk/asn1/der/boolean/der_encode_boolean.o src/pk/asn1/der/boolean/der_length_boolean.o \
+src/pk/asn1/der/choice/der_decode_choice.o src/pk/asn1/der/ia5/der_decode_ia5_string.o \
+src/pk/asn1/der/ia5/der_encode_ia5_string.o src/pk/asn1/der/ia5/der_length_ia5_string.o \
+src/pk/asn1/der/integer/der_decode_integer.o src/pk/asn1/der/integer/der_encode_integer.o \
+src/pk/asn1/der/integer/der_length_integer.o \
 src/pk/asn1/der/object_identifier/der_decode_object_identifier.o \
 src/pk/asn1/der/object_identifier/der_encode_object_identifier.o \
 src/pk/asn1/der/object_identifier/der_length_object_identifier.o \
@@ -191,8 +200,8 @@ src/pk/asn1/der/utf8/der_decode_utf8_string.o src/pk/asn1/der/utf8/der_encode_ut
 src/pk/asn1/der/utf8/der_length_utf8_string.o src/pk/dsa/dsa_decrypt_key.o \
 src/pk/dsa/dsa_encrypt_key.o src/pk/dsa/dsa_export.o src/pk/dsa/dsa_free.o src/pk/dsa/dsa_import.o \
 src/pk/dsa/dsa_make_key.o src/pk/dsa/dsa_shared_secret.o src/pk/dsa/dsa_sign_hash.o \
-src/pk/dsa/dsa_verify_hash.o src/pk/dsa/dsa_verify_key.o src/pk/ecc/ecc.o \
-src/pk/ecc/ecc_ansi_x963_export.o src/pk/ecc/ecc_ansi_x963_import.o src/pk/ecc/ecc_decrypt_key.o \
+src/pk/dsa/dsa_verify_hash.o src/pk/dsa/dsa_verify_key.o src/pk/ecc/ecc_ansi_x963_export.o \
+src/pk/ecc/ecc_ansi_x963_import.o src/pk/ecc/ecc.o src/pk/ecc/ecc_decrypt_key.o \
 src/pk/ecc/ecc_encrypt_key.o src/pk/ecc/ecc_export.o src/pk/ecc/ecc_free.o src/pk/ecc/ecc_get_size.o \
 src/pk/ecc/ecc_import.o src/pk/ecc/ecc_make_key.o src/pk/ecc/ecc_shared_secret.o \
 src/pk/ecc/ecc_sign_hash.o src/pk/ecc/ecc_sizes.o src/pk/ecc/ecc_test.o src/pk/ecc/ecc_verify_hash.o \
@@ -250,6 +259,8 @@ src/hashes/sha2/sha256.o: src/hashes/sha2/sha256.c src/hashes/sha2/sha224.c
 #This rule makes the libtomcrypt library.
 library: $(LIBNAME)
 
+$(OBJECTS): $(HEADERS)
+
 testprof/$(LIBTEST): 
 	cd testprof ; CFLAGS="$(CFLAGS)" LIBTEST_S=$(LIBTEST_S) $(MAKE) 
 
@@ -268,7 +279,7 @@ crypt: library $(CRYPTOBJECTS)
 #makes the small program
 small: library $(SMALLOBJECTS)
 	$(CC) $(SMALLOBJECTS) $(LIBNAME) $(EXTRALIBS) -o $(SMALL) $(WARN)
-	
+
 tv_gen: library $(TVS)
 	$(CC) $(LDFLAGS) $(TVS) $(LIBNAME) $(EXTRALIBS) -o $(TV)
 
@@ -337,7 +348,7 @@ doxy:
 	doxygen
 	cd doc/doxygen/latex ; ${MAKE} ; mv -f refman.pdf ../../.
 	echo The huge doxygen PDF should be available as doc/refman.pdf
-	
+
 #This builds the crypt.pdf file. Note that the rm -f *.pdf has been removed
 #from the clean command! This is because most people would like to keep the
 #nice pre-compiled crypt.pdf that comes with libtomcrypt! We only need to
@@ -380,5 +391,5 @@ zipup: no_oops docs
 
 
 # $Source: /cvs/libtom/libtomcrypt/makefile,v $ 
-# $Revision: 1.145 $ 
-# $Date: 2006/12/02 19:23:21 $ 
+# $Revision: 1.150 $ 
+# $Date: 2007/02/16 16:36:25 $ 

+ 60 - 57
makefile.icc

@@ -96,27 +96,28 @@ endif
 #START_INS
 OBJECTS=src/ciphers/aes/aes_enc.o src/ciphers/aes/aes.o src/ciphers/anubis.o src/ciphers/blowfish.o \
 src/ciphers/cast5.o src/ciphers/des.o src/ciphers/kasumi.o src/ciphers/khazad.o src/ciphers/kseed.o \
-src/ciphers/noekeon.o src/ciphers/rc2.o src/ciphers/rc5.o src/ciphers/rc6.o src/ciphers/safer/safer.o \
-src/ciphers/safer/safer_tab.o src/ciphers/safer/saferp.o src/ciphers/skipjack.o \
-src/ciphers/twofish/twofish.o src/ciphers/xtea.o src/encauth/ccm/ccm_memory.o \
+src/ciphers/multi2.o src/ciphers/noekeon.o src/ciphers/rc2.o src/ciphers/rc5.o src/ciphers/rc6.o \
+src/ciphers/safer/safer.o src/ciphers/safer/saferp.o src/ciphers/safer/safer_tab.o \
+src/ciphers/skipjack.o src/ciphers/twofish/twofish.o src/ciphers/xtea.o src/encauth/ccm/ccm_memory.o \
 src/encauth/ccm/ccm_test.o src/encauth/eax/eax_addheader.o src/encauth/eax/eax_decrypt.o \
-src/encauth/eax/eax_decrypt_verify_memory.o src/encauth/eax/eax_done.o src/encauth/eax/eax_encrypt.o \
-src/encauth/eax/eax_encrypt_authenticate_memory.o src/encauth/eax/eax_init.o \
-src/encauth/eax/eax_test.o src/encauth/gcm/gcm_add_aad.o src/encauth/gcm/gcm_add_iv.o \
-src/encauth/gcm/gcm_done.o src/encauth/gcm/gcm_gf_mult.o src/encauth/gcm/gcm_init.o \
-src/encauth/gcm/gcm_memory.o src/encauth/gcm/gcm_mult_h.o src/encauth/gcm/gcm_process.o \
-src/encauth/gcm/gcm_reset.o src/encauth/gcm/gcm_test.o src/encauth/ocb/ocb_decrypt.o \
-src/encauth/ocb/ocb_decrypt_verify_memory.o src/encauth/ocb/ocb_done_decrypt.o \
-src/encauth/ocb/ocb_done_encrypt.o src/encauth/ocb/ocb_encrypt.o \
-src/encauth/ocb/ocb_encrypt_authenticate_memory.o src/encauth/ocb/ocb_init.o src/encauth/ocb/ocb_ntz.o \
-src/encauth/ocb/ocb_shift_xor.o src/encauth/ocb/ocb_test.o src/encauth/ocb/s_ocb_done.o \
-src/hashes/chc/chc.o src/hashes/helper/hash_file.o src/hashes/helper/hash_filehandle.o \
-src/hashes/helper/hash_memory.o src/hashes/helper/hash_memory_multi.o src/hashes/md2.o src/hashes/md4.o \
-src/hashes/md5.o src/hashes/rmd128.o src/hashes/rmd160.o src/hashes/rmd256.o src/hashes/rmd320.o \
-src/hashes/sha1.o src/hashes/sha2/sha256.o src/hashes/sha2/sha512.o src/hashes/tiger.o \
-src/hashes/whirl/whirl.o src/mac/f9/f9_done.o src/mac/f9/f9_file.o src/mac/f9/f9_init.o \
-src/mac/f9/f9_memory.o src/mac/f9/f9_memory_multi.o src/mac/f9/f9_process.o src/mac/f9/f9_test.o \
-src/mac/hmac/hmac_done.o src/mac/hmac/hmac_file.o src/mac/hmac/hmac_init.o src/mac/hmac/hmac_memory.o \
+src/encauth/eax/eax_decrypt_verify_memory.o src/encauth/eax/eax_done.o \
+src/encauth/eax/eax_encrypt_authenticate_memory.o src/encauth/eax/eax_encrypt.o \
+src/encauth/eax/eax_init.o src/encauth/eax/eax_test.o src/encauth/gcm/gcm_add_aad.o \
+src/encauth/gcm/gcm_add_iv.o src/encauth/gcm/gcm_done.o src/encauth/gcm/gcm_gf_mult.o \
+src/encauth/gcm/gcm_init.o src/encauth/gcm/gcm_memory.o src/encauth/gcm/gcm_mult_h.o \
+src/encauth/gcm/gcm_process.o src/encauth/gcm/gcm_reset.o src/encauth/gcm/gcm_test.o \
+src/encauth/ocb/ocb_decrypt.o src/encauth/ocb/ocb_decrypt_verify_memory.o \
+src/encauth/ocb/ocb_done_decrypt.o src/encauth/ocb/ocb_done_encrypt.o \
+src/encauth/ocb/ocb_encrypt_authenticate_memory.o src/encauth/ocb/ocb_encrypt.o \
+src/encauth/ocb/ocb_init.o src/encauth/ocb/ocb_ntz.o src/encauth/ocb/ocb_shift_xor.o \
+src/encauth/ocb/ocb_test.o src/encauth/ocb/s_ocb_done.o src/hashes/chc/chc.o \
+src/hashes/helper/hash_file.o src/hashes/helper/hash_filehandle.o src/hashes/helper/hash_memory.o \
+src/hashes/helper/hash_memory_multi.o src/hashes/md2.o src/hashes/md4.o src/hashes/md5.o \
+src/hashes/rmd128.o src/hashes/rmd160.o src/hashes/rmd256.o src/hashes/rmd320.o src/hashes/sha1.o \
+src/hashes/sha2/sha256.o src/hashes/sha2/sha512.o src/hashes/tiger.o src/hashes/whirl/whirl.o \
+src/mac/f9/f9_done.o src/mac/f9/f9_file.o src/mac/f9/f9_init.o src/mac/f9/f9_memory.o \
+src/mac/f9/f9_memory_multi.o src/mac/f9/f9_process.o src/mac/f9/f9_test.o src/mac/hmac/hmac_done.o \
+src/mac/hmac/hmac_file.o src/mac/hmac/hmac_init.o src/mac/hmac/hmac_memory.o \
 src/mac/hmac/hmac_memory_multi.o src/mac/hmac/hmac_process.o src/mac/hmac/hmac_test.o \
 src/mac/omac/omac_done.o src/mac/omac/omac_file.o src/mac/omac/omac_init.o src/mac/omac/omac_memory.o \
 src/mac/omac/omac_memory_multi.o src/mac/omac/omac_process.o src/mac/omac/omac_test.o \
@@ -128,39 +129,41 @@ src/mac/xcbc/xcbc_file.o src/mac/xcbc/xcbc_init.o src/mac/xcbc/xcbc_memory.o \
 src/mac/xcbc/xcbc_memory_multi.o src/mac/xcbc/xcbc_process.o src/mac/xcbc/xcbc_test.o \
 src/math/fp/ltc_ecc_fp_mulmod.o src/math/gmp_desc.o src/math/ltm_desc.o src/math/multi.o \
 src/math/rand_prime.o src/math/tfm_desc.o src/misc/base64/base64_decode.o \
-src/misc/base64/base64_encode.o src/misc/burn_stack.o src/misc/crypt/crypt.o \
-src/misc/crypt/crypt_argchk.o src/misc/crypt/crypt_cipher_descriptor.o \
-src/misc/crypt/crypt_cipher_is_valid.o src/misc/crypt/crypt_find_cipher.o \
-src/misc/crypt/crypt_find_cipher_any.o src/misc/crypt/crypt_find_cipher_id.o \
-src/misc/crypt/crypt_find_hash.o src/misc/crypt/crypt_find_hash_any.o \
-src/misc/crypt/crypt_find_hash_id.o src/misc/crypt/crypt_find_hash_oid.o \
-src/misc/crypt/crypt_find_prng.o src/misc/crypt/crypt_fsa.o src/misc/crypt/crypt_hash_descriptor.o \
-src/misc/crypt/crypt_hash_is_valid.o src/misc/crypt/crypt_ltc_mp_descriptor.o \
-src/misc/crypt/crypt_prng_descriptor.o src/misc/crypt/crypt_prng_is_valid.o \
-src/misc/crypt/crypt_register_cipher.o src/misc/crypt/crypt_register_hash.o \
-src/misc/crypt/crypt_register_prng.o src/misc/crypt/crypt_unregister_cipher.o \
-src/misc/crypt/crypt_unregister_hash.o src/misc/crypt/crypt_unregister_prng.o \
-src/misc/error_to_string.o src/misc/pkcs5/pkcs_5_1.o src/misc/pkcs5/pkcs_5_2.o src/misc/zeromem.o \
-src/modes/cbc/cbc_decrypt.o src/modes/cbc/cbc_done.o src/modes/cbc/cbc_encrypt.o \
-src/modes/cbc/cbc_getiv.o src/modes/cbc/cbc_setiv.o src/modes/cbc/cbc_start.o \
-src/modes/cfb/cfb_decrypt.o src/modes/cfb/cfb_done.o src/modes/cfb/cfb_encrypt.o \
-src/modes/cfb/cfb_getiv.o src/modes/cfb/cfb_setiv.o src/modes/cfb/cfb_start.o \
-src/modes/ctr/ctr_decrypt.o src/modes/ctr/ctr_done.o src/modes/ctr/ctr_encrypt.o \
-src/modes/ctr/ctr_getiv.o src/modes/ctr/ctr_setiv.o src/modes/ctr/ctr_start.o src/modes/ctr/ctr_test.o \
-src/modes/ecb/ecb_decrypt.o src/modes/ecb/ecb_done.o src/modes/ecb/ecb_encrypt.o \
-src/modes/ecb/ecb_start.o src/modes/f8/f8_decrypt.o src/modes/f8/f8_done.o src/modes/f8/f8_encrypt.o \
-src/modes/f8/f8_getiv.o src/modes/f8/f8_setiv.o src/modes/f8/f8_start.o src/modes/f8/f8_test_mode.o \
-src/modes/lrw/lrw_decrypt.o src/modes/lrw/lrw_done.o src/modes/lrw/lrw_encrypt.o \
-src/modes/lrw/lrw_getiv.o src/modes/lrw/lrw_process.o src/modes/lrw/lrw_setiv.o \
-src/modes/lrw/lrw_start.o src/modes/lrw/lrw_test.o src/modes/ofb/ofb_decrypt.o src/modes/ofb/ofb_done.o \
-src/modes/ofb/ofb_encrypt.o src/modes/ofb/ofb_getiv.o src/modes/ofb/ofb_setiv.o \
-src/modes/ofb/ofb_start.o src/pk/asn1/der/bit/der_decode_bit_string.o \
-src/pk/asn1/der/bit/der_encode_bit_string.o src/pk/asn1/der/bit/der_length_bit_string.o \
-src/pk/asn1/der/boolean/der_decode_boolean.o src/pk/asn1/der/boolean/der_encode_boolean.o \
-src/pk/asn1/der/boolean/der_length_boolean.o src/pk/asn1/der/choice/der_decode_choice.o \
-src/pk/asn1/der/ia5/der_decode_ia5_string.o src/pk/asn1/der/ia5/der_encode_ia5_string.o \
-src/pk/asn1/der/ia5/der_length_ia5_string.o src/pk/asn1/der/integer/der_decode_integer.o \
-src/pk/asn1/der/integer/der_encode_integer.o src/pk/asn1/der/integer/der_length_integer.o \
+src/misc/base64/base64_encode.o src/misc/burn_stack.o src/misc/crypt/crypt_argchk.o \
+src/misc/crypt/crypt.o src/misc/crypt/crypt_cipher_descriptor.o src/misc/crypt/crypt_cipher_is_valid.o \
+src/misc/crypt/crypt_find_cipher_any.o src/misc/crypt/crypt_find_cipher.o \
+src/misc/crypt/crypt_find_cipher_id.o src/misc/crypt/crypt_find_hash_any.o \
+src/misc/crypt/crypt_find_hash.o src/misc/crypt/crypt_find_hash_id.o \
+src/misc/crypt/crypt_find_hash_oid.o src/misc/crypt/crypt_find_prng.o src/misc/crypt/crypt_fsa.o \
+src/misc/crypt/crypt_hash_descriptor.o src/misc/crypt/crypt_hash_is_valid.o \
+src/misc/crypt/crypt_ltc_mp_descriptor.o src/misc/crypt/crypt_prng_descriptor.o \
+src/misc/crypt/crypt_prng_is_valid.o src/misc/crypt/crypt_register_cipher.o \
+src/misc/crypt/crypt_register_hash.o src/misc/crypt/crypt_register_prng.o \
+src/misc/crypt/crypt_unregister_cipher.o src/misc/crypt/crypt_unregister_hash.o \
+src/misc/crypt/crypt_unregister_prng.o src/misc/error_to_string.o src/misc/pkcs5/pkcs_5_1.o \
+src/misc/pkcs5/pkcs_5_2.o src/misc/zeromem.o src/modes/cbc/cbc_decrypt.o src/modes/cbc/cbc_done.o \
+src/modes/cbc/cbc_encrypt.o src/modes/cbc/cbc_getiv.o src/modes/cbc/cbc_setiv.o \
+src/modes/cbc/cbc_start.o src/modes/cfb/cfb_decrypt.o src/modes/cfb/cfb_done.o \
+src/modes/cfb/cfb_encrypt.o src/modes/cfb/cfb_getiv.o src/modes/cfb/cfb_setiv.o \
+src/modes/cfb/cfb_start.o src/modes/ctr/ctr_decrypt.o src/modes/ctr/ctr_done.o \
+src/modes/ctr/ctr_encrypt.o src/modes/ctr/ctr_getiv.o src/modes/ctr/ctr_setiv.o \
+src/modes/ctr/ctr_start.o src/modes/ctr/ctr_test.o src/modes/ecb/ecb_decrypt.o src/modes/ecb/ecb_done.o \
+src/modes/ecb/ecb_encrypt.o src/modes/ecb/ecb_start.o src/modes/f8/f8_decrypt.o src/modes/f8/f8_done.o \
+src/modes/f8/f8_encrypt.o src/modes/f8/f8_getiv.o src/modes/f8/f8_setiv.o src/modes/f8/f8_start.o \
+src/modes/f8/f8_test_mode.o src/modes/lrw/lrw_decrypt.o src/modes/lrw/lrw_done.o \
+src/modes/lrw/lrw_encrypt.o src/modes/lrw/lrw_getiv.o src/modes/lrw/lrw_process.o \
+src/modes/lrw/lrw_setiv.o src/modes/lrw/lrw_start.o src/modes/lrw/lrw_test.o \
+src/modes/ofb/ofb_decrypt.o src/modes/ofb/ofb_done.o src/modes/ofb/ofb_encrypt.o \
+src/modes/ofb/ofb_getiv.o src/modes/ofb/ofb_setiv.o src/modes/ofb/ofb_start.o \
+src/modes/xts/xts_decrypt.o src/modes/xts/xts_done.o src/modes/xts/xts_encrypt.o \
+src/modes/xts/xts_init.o src/modes/xts/xts_mult_x.o src/modes/xts/xts_test.o \
+src/pk/asn1/der/bit/der_decode_bit_string.o src/pk/asn1/der/bit/der_encode_bit_string.o \
+src/pk/asn1/der/bit/der_length_bit_string.o src/pk/asn1/der/boolean/der_decode_boolean.o \
+src/pk/asn1/der/boolean/der_encode_boolean.o src/pk/asn1/der/boolean/der_length_boolean.o \
+src/pk/asn1/der/choice/der_decode_choice.o src/pk/asn1/der/ia5/der_decode_ia5_string.o \
+src/pk/asn1/der/ia5/der_encode_ia5_string.o src/pk/asn1/der/ia5/der_length_ia5_string.o \
+src/pk/asn1/der/integer/der_decode_integer.o src/pk/asn1/der/integer/der_encode_integer.o \
+src/pk/asn1/der/integer/der_length_integer.o \
 src/pk/asn1/der/object_identifier/der_decode_object_identifier.o \
 src/pk/asn1/der/object_identifier/der_encode_object_identifier.o \
 src/pk/asn1/der/object_identifier/der_length_object_identifier.o \
@@ -183,8 +186,8 @@ src/pk/asn1/der/utf8/der_decode_utf8_string.o src/pk/asn1/der/utf8/der_encode_ut
 src/pk/asn1/der/utf8/der_length_utf8_string.o src/pk/dsa/dsa_decrypt_key.o \
 src/pk/dsa/dsa_encrypt_key.o src/pk/dsa/dsa_export.o src/pk/dsa/dsa_free.o src/pk/dsa/dsa_import.o \
 src/pk/dsa/dsa_make_key.o src/pk/dsa/dsa_shared_secret.o src/pk/dsa/dsa_sign_hash.o \
-src/pk/dsa/dsa_verify_hash.o src/pk/dsa/dsa_verify_key.o src/pk/ecc/ecc.o \
-src/pk/ecc/ecc_ansi_x963_export.o src/pk/ecc/ecc_ansi_x963_import.o src/pk/ecc/ecc_decrypt_key.o \
+src/pk/dsa/dsa_verify_hash.o src/pk/dsa/dsa_verify_key.o src/pk/ecc/ecc_ansi_x963_export.o \
+src/pk/ecc/ecc_ansi_x963_import.o src/pk/ecc/ecc.o src/pk/ecc/ecc_decrypt_key.o \
 src/pk/ecc/ecc_encrypt_key.o src/pk/ecc/ecc_export.o src/pk/ecc/ecc_free.o src/pk/ecc/ecc_get_size.o \
 src/pk/ecc/ecc_import.o src/pk/ecc/ecc_make_key.o src/pk/ecc/ecc_shared_secret.o \
 src/pk/ecc/ecc_sign_hash.o src/pk/ecc/ecc_sizes.o src/pk/ecc/ecc_test.o src/pk/ecc/ecc_verify_hash.o \
@@ -287,6 +290,6 @@ install: library
 	install -g $(GROUP) -o $(USER) $(HEADERS) $(DESTDIR)$(INCPATH)
 
 # $Source: /cvs/libtom/libtomcrypt/makefile.icc,v $   
-# $Revision: 1.73 $   
-# $Date: 2006/12/02 19:23:21 $ 
+# $Revision: 1.76 $   
+# $Date: 2007/02/16 16:36:25 $ 
 

+ 60 - 57
makefile.msvc

@@ -6,27 +6,28 @@ CFLAGS = /Isrc/headers/ /Itestprof/ /Ox /DWIN32 /DLTC_SOURCE /W3 /Fo$@ $(CF)
 #START_INS
 OBJECTS=src/ciphers/aes/aes_enc.obj src/ciphers/aes/aes.obj src/ciphers/anubis.obj src/ciphers/blowfish.obj \
 src/ciphers/cast5.obj src/ciphers/des.obj src/ciphers/kasumi.obj src/ciphers/khazad.obj src/ciphers/kseed.obj \
-src/ciphers/noekeon.obj src/ciphers/rc2.obj src/ciphers/rc5.obj src/ciphers/rc6.obj src/ciphers/safer/safer.obj \
-src/ciphers/safer/safer_tab.obj src/ciphers/safer/saferp.obj src/ciphers/skipjack.obj \
-src/ciphers/twofish/twofish.obj src/ciphers/xtea.obj src/encauth/ccm/ccm_memory.obj \
+src/ciphers/multi2.obj src/ciphers/noekeon.obj src/ciphers/rc2.obj src/ciphers/rc5.obj src/ciphers/rc6.obj \
+src/ciphers/safer/safer.obj src/ciphers/safer/saferp.obj src/ciphers/safer/safer_tab.obj \
+src/ciphers/skipjack.obj src/ciphers/twofish/twofish.obj src/ciphers/xtea.obj src/encauth/ccm/ccm_memory.obj \
 src/encauth/ccm/ccm_test.obj src/encauth/eax/eax_addheader.obj src/encauth/eax/eax_decrypt.obj \
-src/encauth/eax/eax_decrypt_verify_memory.obj src/encauth/eax/eax_done.obj src/encauth/eax/eax_encrypt.obj \
-src/encauth/eax/eax_encrypt_authenticate_memory.obj src/encauth/eax/eax_init.obj \
-src/encauth/eax/eax_test.obj src/encauth/gcm/gcm_add_aad.obj src/encauth/gcm/gcm_add_iv.obj \
-src/encauth/gcm/gcm_done.obj src/encauth/gcm/gcm_gf_mult.obj src/encauth/gcm/gcm_init.obj \
-src/encauth/gcm/gcm_memory.obj src/encauth/gcm/gcm_mult_h.obj src/encauth/gcm/gcm_process.obj \
-src/encauth/gcm/gcm_reset.obj src/encauth/gcm/gcm_test.obj src/encauth/ocb/ocb_decrypt.obj \
-src/encauth/ocb/ocb_decrypt_verify_memory.obj src/encauth/ocb/ocb_done_decrypt.obj \
-src/encauth/ocb/ocb_done_encrypt.obj src/encauth/ocb/ocb_encrypt.obj \
-src/encauth/ocb/ocb_encrypt_authenticate_memory.obj src/encauth/ocb/ocb_init.obj src/encauth/ocb/ocb_ntz.obj \
-src/encauth/ocb/ocb_shift_xor.obj src/encauth/ocb/ocb_test.obj src/encauth/ocb/s_ocb_done.obj \
-src/hashes/chc/chc.obj src/hashes/helper/hash_file.obj src/hashes/helper/hash_filehandle.obj \
-src/hashes/helper/hash_memory.obj src/hashes/helper/hash_memory_multi.obj src/hashes/md2.obj src/hashes/md4.obj \
-src/hashes/md5.obj src/hashes/rmd128.obj src/hashes/rmd160.obj src/hashes/rmd256.obj src/hashes/rmd320.obj \
-src/hashes/sha1.obj src/hashes/sha2/sha256.obj src/hashes/sha2/sha512.obj src/hashes/tiger.obj \
-src/hashes/whirl/whirl.obj src/mac/f9/f9_done.obj src/mac/f9/f9_file.obj src/mac/f9/f9_init.obj \
-src/mac/f9/f9_memory.obj src/mac/f9/f9_memory_multi.obj src/mac/f9/f9_process.obj src/mac/f9/f9_test.obj \
-src/mac/hmac/hmac_done.obj src/mac/hmac/hmac_file.obj src/mac/hmac/hmac_init.obj src/mac/hmac/hmac_memory.obj \
+src/encauth/eax/eax_decrypt_verify_memory.obj src/encauth/eax/eax_done.obj \
+src/encauth/eax/eax_encrypt_authenticate_memory.obj src/encauth/eax/eax_encrypt.obj \
+src/encauth/eax/eax_init.obj src/encauth/eax/eax_test.obj src/encauth/gcm/gcm_add_aad.obj \
+src/encauth/gcm/gcm_add_iv.obj src/encauth/gcm/gcm_done.obj src/encauth/gcm/gcm_gf_mult.obj \
+src/encauth/gcm/gcm_init.obj src/encauth/gcm/gcm_memory.obj src/encauth/gcm/gcm_mult_h.obj \
+src/encauth/gcm/gcm_process.obj src/encauth/gcm/gcm_reset.obj src/encauth/gcm/gcm_test.obj \
+src/encauth/ocb/ocb_decrypt.obj src/encauth/ocb/ocb_decrypt_verify_memory.obj \
+src/encauth/ocb/ocb_done_decrypt.obj src/encauth/ocb/ocb_done_encrypt.obj \
+src/encauth/ocb/ocb_encrypt_authenticate_memory.obj src/encauth/ocb/ocb_encrypt.obj \
+src/encauth/ocb/ocb_init.obj src/encauth/ocb/ocb_ntz.obj src/encauth/ocb/ocb_shift_xor.obj \
+src/encauth/ocb/ocb_test.obj src/encauth/ocb/s_ocb_done.obj src/hashes/chc/chc.obj \
+src/hashes/helper/hash_file.obj src/hashes/helper/hash_filehandle.obj src/hashes/helper/hash_memory.obj \
+src/hashes/helper/hash_memory_multi.obj src/hashes/md2.obj src/hashes/md4.obj src/hashes/md5.obj \
+src/hashes/rmd128.obj src/hashes/rmd160.obj src/hashes/rmd256.obj src/hashes/rmd320.obj src/hashes/sha1.obj \
+src/hashes/sha2/sha256.obj src/hashes/sha2/sha512.obj src/hashes/tiger.obj src/hashes/whirl/whirl.obj \
+src/mac/f9/f9_done.obj src/mac/f9/f9_file.obj src/mac/f9/f9_init.obj src/mac/f9/f9_memory.obj \
+src/mac/f9/f9_memory_multi.obj src/mac/f9/f9_process.obj src/mac/f9/f9_test.obj src/mac/hmac/hmac_done.obj \
+src/mac/hmac/hmac_file.obj src/mac/hmac/hmac_init.obj src/mac/hmac/hmac_memory.obj \
 src/mac/hmac/hmac_memory_multi.obj src/mac/hmac/hmac_process.obj src/mac/hmac/hmac_test.obj \
 src/mac/omac/omac_done.obj src/mac/omac/omac_file.obj src/mac/omac/omac_init.obj src/mac/omac/omac_memory.obj \
 src/mac/omac/omac_memory_multi.obj src/mac/omac/omac_process.obj src/mac/omac/omac_test.obj \
@@ -38,39 +39,41 @@ src/mac/xcbc/xcbc_file.obj src/mac/xcbc/xcbc_init.obj src/mac/xcbc/xcbc_memory.o
 src/mac/xcbc/xcbc_memory_multi.obj src/mac/xcbc/xcbc_process.obj src/mac/xcbc/xcbc_test.obj \
 src/math/fp/ltc_ecc_fp_mulmod.obj src/math/gmp_desc.obj src/math/ltm_desc.obj src/math/multi.obj \
 src/math/rand_prime.obj src/math/tfm_desc.obj src/misc/base64/base64_decode.obj \
-src/misc/base64/base64_encode.obj src/misc/burn_stack.obj src/misc/crypt/crypt.obj \
-src/misc/crypt/crypt_argchk.obj src/misc/crypt/crypt_cipher_descriptor.obj \
-src/misc/crypt/crypt_cipher_is_valid.obj src/misc/crypt/crypt_find_cipher.obj \
-src/misc/crypt/crypt_find_cipher_any.obj src/misc/crypt/crypt_find_cipher_id.obj \
-src/misc/crypt/crypt_find_hash.obj src/misc/crypt/crypt_find_hash_any.obj \
-src/misc/crypt/crypt_find_hash_id.obj src/misc/crypt/crypt_find_hash_oid.obj \
-src/misc/crypt/crypt_find_prng.obj src/misc/crypt/crypt_fsa.obj src/misc/crypt/crypt_hash_descriptor.obj \
-src/misc/crypt/crypt_hash_is_valid.obj src/misc/crypt/crypt_ltc_mp_descriptor.obj \
-src/misc/crypt/crypt_prng_descriptor.obj src/misc/crypt/crypt_prng_is_valid.obj \
-src/misc/crypt/crypt_register_cipher.obj src/misc/crypt/crypt_register_hash.obj \
-src/misc/crypt/crypt_register_prng.obj src/misc/crypt/crypt_unregister_cipher.obj \
-src/misc/crypt/crypt_unregister_hash.obj src/misc/crypt/crypt_unregister_prng.obj \
-src/misc/error_to_string.obj src/misc/pkcs5/pkcs_5_1.obj src/misc/pkcs5/pkcs_5_2.obj src/misc/zeromem.obj \
-src/modes/cbc/cbc_decrypt.obj src/modes/cbc/cbc_done.obj src/modes/cbc/cbc_encrypt.obj \
-src/modes/cbc/cbc_getiv.obj src/modes/cbc/cbc_setiv.obj src/modes/cbc/cbc_start.obj \
-src/modes/cfb/cfb_decrypt.obj src/modes/cfb/cfb_done.obj src/modes/cfb/cfb_encrypt.obj \
-src/modes/cfb/cfb_getiv.obj src/modes/cfb/cfb_setiv.obj src/modes/cfb/cfb_start.obj \
-src/modes/ctr/ctr_decrypt.obj src/modes/ctr/ctr_done.obj src/modes/ctr/ctr_encrypt.obj \
-src/modes/ctr/ctr_getiv.obj src/modes/ctr/ctr_setiv.obj src/modes/ctr/ctr_start.obj src/modes/ctr/ctr_test.obj \
-src/modes/ecb/ecb_decrypt.obj src/modes/ecb/ecb_done.obj src/modes/ecb/ecb_encrypt.obj \
-src/modes/ecb/ecb_start.obj src/modes/f8/f8_decrypt.obj src/modes/f8/f8_done.obj src/modes/f8/f8_encrypt.obj \
-src/modes/f8/f8_getiv.obj src/modes/f8/f8_setiv.obj src/modes/f8/f8_start.obj src/modes/f8/f8_test_mode.obj \
-src/modes/lrw/lrw_decrypt.obj src/modes/lrw/lrw_done.obj src/modes/lrw/lrw_encrypt.obj \
-src/modes/lrw/lrw_getiv.obj src/modes/lrw/lrw_process.obj src/modes/lrw/lrw_setiv.obj \
-src/modes/lrw/lrw_start.obj src/modes/lrw/lrw_test.obj src/modes/ofb/ofb_decrypt.obj src/modes/ofb/ofb_done.obj \
-src/modes/ofb/ofb_encrypt.obj src/modes/ofb/ofb_getiv.obj src/modes/ofb/ofb_setiv.obj \
-src/modes/ofb/ofb_start.obj src/pk/asn1/der/bit/der_decode_bit_string.obj \
-src/pk/asn1/der/bit/der_encode_bit_string.obj src/pk/asn1/der/bit/der_length_bit_string.obj \
-src/pk/asn1/der/boolean/der_decode_boolean.obj src/pk/asn1/der/boolean/der_encode_boolean.obj \
-src/pk/asn1/der/boolean/der_length_boolean.obj src/pk/asn1/der/choice/der_decode_choice.obj \
-src/pk/asn1/der/ia5/der_decode_ia5_string.obj src/pk/asn1/der/ia5/der_encode_ia5_string.obj \
-src/pk/asn1/der/ia5/der_length_ia5_string.obj src/pk/asn1/der/integer/der_decode_integer.obj \
-src/pk/asn1/der/integer/der_encode_integer.obj src/pk/asn1/der/integer/der_length_integer.obj \
+src/misc/base64/base64_encode.obj src/misc/burn_stack.obj src/misc/crypt/crypt_argchk.obj \
+src/misc/crypt/crypt.obj src/misc/crypt/crypt_cipher_descriptor.obj src/misc/crypt/crypt_cipher_is_valid.obj \
+src/misc/crypt/crypt_find_cipher_any.obj src/misc/crypt/crypt_find_cipher.obj \
+src/misc/crypt/crypt_find_cipher_id.obj src/misc/crypt/crypt_find_hash_any.obj \
+src/misc/crypt/crypt_find_hash.obj src/misc/crypt/crypt_find_hash_id.obj \
+src/misc/crypt/crypt_find_hash_oid.obj src/misc/crypt/crypt_find_prng.obj src/misc/crypt/crypt_fsa.obj \
+src/misc/crypt/crypt_hash_descriptor.obj src/misc/crypt/crypt_hash_is_valid.obj \
+src/misc/crypt/crypt_ltc_mp_descriptor.obj src/misc/crypt/crypt_prng_descriptor.obj \
+src/misc/crypt/crypt_prng_is_valid.obj src/misc/crypt/crypt_register_cipher.obj \
+src/misc/crypt/crypt_register_hash.obj src/misc/crypt/crypt_register_prng.obj \
+src/misc/crypt/crypt_unregister_cipher.obj src/misc/crypt/crypt_unregister_hash.obj \
+src/misc/crypt/crypt_unregister_prng.obj src/misc/error_to_string.obj src/misc/pkcs5/pkcs_5_1.obj \
+src/misc/pkcs5/pkcs_5_2.obj src/misc/zeromem.obj src/modes/cbc/cbc_decrypt.obj src/modes/cbc/cbc_done.obj \
+src/modes/cbc/cbc_encrypt.obj src/modes/cbc/cbc_getiv.obj src/modes/cbc/cbc_setiv.obj \
+src/modes/cbc/cbc_start.obj src/modes/cfb/cfb_decrypt.obj src/modes/cfb/cfb_done.obj \
+src/modes/cfb/cfb_encrypt.obj src/modes/cfb/cfb_getiv.obj src/modes/cfb/cfb_setiv.obj \
+src/modes/cfb/cfb_start.obj src/modes/ctr/ctr_decrypt.obj src/modes/ctr/ctr_done.obj \
+src/modes/ctr/ctr_encrypt.obj src/modes/ctr/ctr_getiv.obj src/modes/ctr/ctr_setiv.obj \
+src/modes/ctr/ctr_start.obj src/modes/ctr/ctr_test.obj src/modes/ecb/ecb_decrypt.obj src/modes/ecb/ecb_done.obj \
+src/modes/ecb/ecb_encrypt.obj src/modes/ecb/ecb_start.obj src/modes/f8/f8_decrypt.obj src/modes/f8/f8_done.obj \
+src/modes/f8/f8_encrypt.obj src/modes/f8/f8_getiv.obj src/modes/f8/f8_setiv.obj src/modes/f8/f8_start.obj \
+src/modes/f8/f8_test_mode.obj src/modes/lrw/lrw_decrypt.obj src/modes/lrw/lrw_done.obj \
+src/modes/lrw/lrw_encrypt.obj src/modes/lrw/lrw_getiv.obj src/modes/lrw/lrw_process.obj \
+src/modes/lrw/lrw_setiv.obj src/modes/lrw/lrw_start.obj src/modes/lrw/lrw_test.obj \
+src/modes/ofb/ofb_decrypt.obj src/modes/ofb/ofb_done.obj src/modes/ofb/ofb_encrypt.obj \
+src/modes/ofb/ofb_getiv.obj src/modes/ofb/ofb_setiv.obj src/modes/ofb/ofb_start.obj \
+src/modes/xts/xts_decrypt.obj src/modes/xts/xts_done.obj src/modes/xts/xts_encrypt.obj \
+src/modes/xts/xts_init.obj src/modes/xts/xts_mult_x.obj src/modes/xts/xts_test.obj \
+src/pk/asn1/der/bit/der_decode_bit_string.obj src/pk/asn1/der/bit/der_encode_bit_string.obj \
+src/pk/asn1/der/bit/der_length_bit_string.obj src/pk/asn1/der/boolean/der_decode_boolean.obj \
+src/pk/asn1/der/boolean/der_encode_boolean.obj src/pk/asn1/der/boolean/der_length_boolean.obj \
+src/pk/asn1/der/choice/der_decode_choice.obj src/pk/asn1/der/ia5/der_decode_ia5_string.obj \
+src/pk/asn1/der/ia5/der_encode_ia5_string.obj src/pk/asn1/der/ia5/der_length_ia5_string.obj \
+src/pk/asn1/der/integer/der_decode_integer.obj src/pk/asn1/der/integer/der_encode_integer.obj \
+src/pk/asn1/der/integer/der_length_integer.obj \
 src/pk/asn1/der/object_identifier/der_decode_object_identifier.obj \
 src/pk/asn1/der/object_identifier/der_encode_object_identifier.obj \
 src/pk/asn1/der/object_identifier/der_length_object_identifier.obj \
@@ -93,8 +96,8 @@ src/pk/asn1/der/utf8/der_decode_utf8_string.obj src/pk/asn1/der/utf8/der_encode_
 src/pk/asn1/der/utf8/der_length_utf8_string.obj src/pk/dsa/dsa_decrypt_key.obj \
 src/pk/dsa/dsa_encrypt_key.obj src/pk/dsa/dsa_export.obj src/pk/dsa/dsa_free.obj src/pk/dsa/dsa_import.obj \
 src/pk/dsa/dsa_make_key.obj src/pk/dsa/dsa_shared_secret.obj src/pk/dsa/dsa_sign_hash.obj \
-src/pk/dsa/dsa_verify_hash.obj src/pk/dsa/dsa_verify_key.obj src/pk/ecc/ecc.obj \
-src/pk/ecc/ecc_ansi_x963_export.obj src/pk/ecc/ecc_ansi_x963_import.obj src/pk/ecc/ecc_decrypt_key.obj \
+src/pk/dsa/dsa_verify_hash.obj src/pk/dsa/dsa_verify_key.obj src/pk/ecc/ecc_ansi_x963_export.obj \
+src/pk/ecc/ecc_ansi_x963_import.obj src/pk/ecc/ecc.obj src/pk/ecc/ecc_decrypt_key.obj \
 src/pk/ecc/ecc_encrypt_key.obj src/pk/ecc/ecc_export.obj src/pk/ecc/ecc_free.obj src/pk/ecc/ecc_get_size.obj \
 src/pk/ecc/ecc_import.obj src/pk/ecc/ecc_make_key.obj src/pk/ecc/ecc_shared_secret.obj \
 src/pk/ecc/ecc_sign_hash.obj src/pk/ecc/ecc_sizes.obj src/pk/ecc/ecc_test.obj src/pk/ecc/ecc_verify_hash.obj \
@@ -145,5 +148,5 @@ timing: demos/timing.c library
 	cl $(CFLAGS) demos/timing.c testprof/tomcrypt_prof.lib tomcrypt.lib advapi32.lib $(EXTRALIBS)
 
 # $Source: /cvs/libtom/libtomcrypt/makefile.msvc,v $   
-# $Revision: 1.51 $   
-# $Date: 2006/12/02 19:23:21 $ 
+# $Revision: 1.54 $   
+# $Date: 2007/02/16 16:36:25 $ 

+ 61 - 58
makefile.shared

@@ -6,7 +6,7 @@
 # Tom St Denis
 
 # The version
-VERSION=0:116
+VERSION=0:117
 
 # Compiler and Linker Names
 CC=libtool --mode=compile --tag=CC gcc 
@@ -101,27 +101,28 @@ endif
 #START_INS
 OBJECTS=src/ciphers/aes/aes_enc.o src/ciphers/aes/aes.o src/ciphers/anubis.o src/ciphers/blowfish.o \
 src/ciphers/cast5.o src/ciphers/des.o src/ciphers/kasumi.o src/ciphers/khazad.o src/ciphers/kseed.o \
-src/ciphers/noekeon.o src/ciphers/rc2.o src/ciphers/rc5.o src/ciphers/rc6.o src/ciphers/safer/safer.o \
-src/ciphers/safer/safer_tab.o src/ciphers/safer/saferp.o src/ciphers/skipjack.o \
-src/ciphers/twofish/twofish.o src/ciphers/xtea.o src/encauth/ccm/ccm_memory.o \
+src/ciphers/multi2.o src/ciphers/noekeon.o src/ciphers/rc2.o src/ciphers/rc5.o src/ciphers/rc6.o \
+src/ciphers/safer/safer.o src/ciphers/safer/saferp.o src/ciphers/safer/safer_tab.o \
+src/ciphers/skipjack.o src/ciphers/twofish/twofish.o src/ciphers/xtea.o src/encauth/ccm/ccm_memory.o \
 src/encauth/ccm/ccm_test.o src/encauth/eax/eax_addheader.o src/encauth/eax/eax_decrypt.o \
-src/encauth/eax/eax_decrypt_verify_memory.o src/encauth/eax/eax_done.o src/encauth/eax/eax_encrypt.o \
-src/encauth/eax/eax_encrypt_authenticate_memory.o src/encauth/eax/eax_init.o \
-src/encauth/eax/eax_test.o src/encauth/gcm/gcm_add_aad.o src/encauth/gcm/gcm_add_iv.o \
-src/encauth/gcm/gcm_done.o src/encauth/gcm/gcm_gf_mult.o src/encauth/gcm/gcm_init.o \
-src/encauth/gcm/gcm_memory.o src/encauth/gcm/gcm_mult_h.o src/encauth/gcm/gcm_process.o \
-src/encauth/gcm/gcm_reset.o src/encauth/gcm/gcm_test.o src/encauth/ocb/ocb_decrypt.o \
-src/encauth/ocb/ocb_decrypt_verify_memory.o src/encauth/ocb/ocb_done_decrypt.o \
-src/encauth/ocb/ocb_done_encrypt.o src/encauth/ocb/ocb_encrypt.o \
-src/encauth/ocb/ocb_encrypt_authenticate_memory.o src/encauth/ocb/ocb_init.o src/encauth/ocb/ocb_ntz.o \
-src/encauth/ocb/ocb_shift_xor.o src/encauth/ocb/ocb_test.o src/encauth/ocb/s_ocb_done.o \
-src/hashes/chc/chc.o src/hashes/helper/hash_file.o src/hashes/helper/hash_filehandle.o \
-src/hashes/helper/hash_memory.o src/hashes/helper/hash_memory_multi.o src/hashes/md2.o src/hashes/md4.o \
-src/hashes/md5.o src/hashes/rmd128.o src/hashes/rmd160.o src/hashes/rmd256.o src/hashes/rmd320.o \
-src/hashes/sha1.o src/hashes/sha2/sha256.o src/hashes/sha2/sha512.o src/hashes/tiger.o \
-src/hashes/whirl/whirl.o src/mac/f9/f9_done.o src/mac/f9/f9_file.o src/mac/f9/f9_init.o \
-src/mac/f9/f9_memory.o src/mac/f9/f9_memory_multi.o src/mac/f9/f9_process.o src/mac/f9/f9_test.o \
-src/mac/hmac/hmac_done.o src/mac/hmac/hmac_file.o src/mac/hmac/hmac_init.o src/mac/hmac/hmac_memory.o \
+src/encauth/eax/eax_decrypt_verify_memory.o src/encauth/eax/eax_done.o \
+src/encauth/eax/eax_encrypt_authenticate_memory.o src/encauth/eax/eax_encrypt.o \
+src/encauth/eax/eax_init.o src/encauth/eax/eax_test.o src/encauth/gcm/gcm_add_aad.o \
+src/encauth/gcm/gcm_add_iv.o src/encauth/gcm/gcm_done.o src/encauth/gcm/gcm_gf_mult.o \
+src/encauth/gcm/gcm_init.o src/encauth/gcm/gcm_memory.o src/encauth/gcm/gcm_mult_h.o \
+src/encauth/gcm/gcm_process.o src/encauth/gcm/gcm_reset.o src/encauth/gcm/gcm_test.o \
+src/encauth/ocb/ocb_decrypt.o src/encauth/ocb/ocb_decrypt_verify_memory.o \
+src/encauth/ocb/ocb_done_decrypt.o src/encauth/ocb/ocb_done_encrypt.o \
+src/encauth/ocb/ocb_encrypt_authenticate_memory.o src/encauth/ocb/ocb_encrypt.o \
+src/encauth/ocb/ocb_init.o src/encauth/ocb/ocb_ntz.o src/encauth/ocb/ocb_shift_xor.o \
+src/encauth/ocb/ocb_test.o src/encauth/ocb/s_ocb_done.o src/hashes/chc/chc.o \
+src/hashes/helper/hash_file.o src/hashes/helper/hash_filehandle.o src/hashes/helper/hash_memory.o \
+src/hashes/helper/hash_memory_multi.o src/hashes/md2.o src/hashes/md4.o src/hashes/md5.o \
+src/hashes/rmd128.o src/hashes/rmd160.o src/hashes/rmd256.o src/hashes/rmd320.o src/hashes/sha1.o \
+src/hashes/sha2/sha256.o src/hashes/sha2/sha512.o src/hashes/tiger.o src/hashes/whirl/whirl.o \
+src/mac/f9/f9_done.o src/mac/f9/f9_file.o src/mac/f9/f9_init.o src/mac/f9/f9_memory.o \
+src/mac/f9/f9_memory_multi.o src/mac/f9/f9_process.o src/mac/f9/f9_test.o src/mac/hmac/hmac_done.o \
+src/mac/hmac/hmac_file.o src/mac/hmac/hmac_init.o src/mac/hmac/hmac_memory.o \
 src/mac/hmac/hmac_memory_multi.o src/mac/hmac/hmac_process.o src/mac/hmac/hmac_test.o \
 src/mac/omac/omac_done.o src/mac/omac/omac_file.o src/mac/omac/omac_init.o src/mac/omac/omac_memory.o \
 src/mac/omac/omac_memory_multi.o src/mac/omac/omac_process.o src/mac/omac/omac_test.o \
@@ -133,39 +134,41 @@ src/mac/xcbc/xcbc_file.o src/mac/xcbc/xcbc_init.o src/mac/xcbc/xcbc_memory.o \
 src/mac/xcbc/xcbc_memory_multi.o src/mac/xcbc/xcbc_process.o src/mac/xcbc/xcbc_test.o \
 src/math/fp/ltc_ecc_fp_mulmod.o src/math/gmp_desc.o src/math/ltm_desc.o src/math/multi.o \
 src/math/rand_prime.o src/math/tfm_desc.o src/misc/base64/base64_decode.o \
-src/misc/base64/base64_encode.o src/misc/burn_stack.o src/misc/crypt/crypt.o \
-src/misc/crypt/crypt_argchk.o src/misc/crypt/crypt_cipher_descriptor.o \
-src/misc/crypt/crypt_cipher_is_valid.o src/misc/crypt/crypt_find_cipher.o \
-src/misc/crypt/crypt_find_cipher_any.o src/misc/crypt/crypt_find_cipher_id.o \
-src/misc/crypt/crypt_find_hash.o src/misc/crypt/crypt_find_hash_any.o \
-src/misc/crypt/crypt_find_hash_id.o src/misc/crypt/crypt_find_hash_oid.o \
-src/misc/crypt/crypt_find_prng.o src/misc/crypt/crypt_fsa.o src/misc/crypt/crypt_hash_descriptor.o \
-src/misc/crypt/crypt_hash_is_valid.o src/misc/crypt/crypt_ltc_mp_descriptor.o \
-src/misc/crypt/crypt_prng_descriptor.o src/misc/crypt/crypt_prng_is_valid.o \
-src/misc/crypt/crypt_register_cipher.o src/misc/crypt/crypt_register_hash.o \
-src/misc/crypt/crypt_register_prng.o src/misc/crypt/crypt_unregister_cipher.o \
-src/misc/crypt/crypt_unregister_hash.o src/misc/crypt/crypt_unregister_prng.o \
-src/misc/error_to_string.o src/misc/pkcs5/pkcs_5_1.o src/misc/pkcs5/pkcs_5_2.o src/misc/zeromem.o \
-src/modes/cbc/cbc_decrypt.o src/modes/cbc/cbc_done.o src/modes/cbc/cbc_encrypt.o \
-src/modes/cbc/cbc_getiv.o src/modes/cbc/cbc_setiv.o src/modes/cbc/cbc_start.o \
-src/modes/cfb/cfb_decrypt.o src/modes/cfb/cfb_done.o src/modes/cfb/cfb_encrypt.o \
-src/modes/cfb/cfb_getiv.o src/modes/cfb/cfb_setiv.o src/modes/cfb/cfb_start.o \
-src/modes/ctr/ctr_decrypt.o src/modes/ctr/ctr_done.o src/modes/ctr/ctr_encrypt.o \
-src/modes/ctr/ctr_getiv.o src/modes/ctr/ctr_setiv.o src/modes/ctr/ctr_start.o src/modes/ctr/ctr_test.o \
-src/modes/ecb/ecb_decrypt.o src/modes/ecb/ecb_done.o src/modes/ecb/ecb_encrypt.o \
-src/modes/ecb/ecb_start.o src/modes/f8/f8_decrypt.o src/modes/f8/f8_done.o src/modes/f8/f8_encrypt.o \
-src/modes/f8/f8_getiv.o src/modes/f8/f8_setiv.o src/modes/f8/f8_start.o src/modes/f8/f8_test_mode.o \
-src/modes/lrw/lrw_decrypt.o src/modes/lrw/lrw_done.o src/modes/lrw/lrw_encrypt.o \
-src/modes/lrw/lrw_getiv.o src/modes/lrw/lrw_process.o src/modes/lrw/lrw_setiv.o \
-src/modes/lrw/lrw_start.o src/modes/lrw/lrw_test.o src/modes/ofb/ofb_decrypt.o src/modes/ofb/ofb_done.o \
-src/modes/ofb/ofb_encrypt.o src/modes/ofb/ofb_getiv.o src/modes/ofb/ofb_setiv.o \
-src/modes/ofb/ofb_start.o src/pk/asn1/der/bit/der_decode_bit_string.o \
-src/pk/asn1/der/bit/der_encode_bit_string.o src/pk/asn1/der/bit/der_length_bit_string.o \
-src/pk/asn1/der/boolean/der_decode_boolean.o src/pk/asn1/der/boolean/der_encode_boolean.o \
-src/pk/asn1/der/boolean/der_length_boolean.o src/pk/asn1/der/choice/der_decode_choice.o \
-src/pk/asn1/der/ia5/der_decode_ia5_string.o src/pk/asn1/der/ia5/der_encode_ia5_string.o \
-src/pk/asn1/der/ia5/der_length_ia5_string.o src/pk/asn1/der/integer/der_decode_integer.o \
-src/pk/asn1/der/integer/der_encode_integer.o src/pk/asn1/der/integer/der_length_integer.o \
+src/misc/base64/base64_encode.o src/misc/burn_stack.o src/misc/crypt/crypt_argchk.o \
+src/misc/crypt/crypt.o src/misc/crypt/crypt_cipher_descriptor.o src/misc/crypt/crypt_cipher_is_valid.o \
+src/misc/crypt/crypt_find_cipher_any.o src/misc/crypt/crypt_find_cipher.o \
+src/misc/crypt/crypt_find_cipher_id.o src/misc/crypt/crypt_find_hash_any.o \
+src/misc/crypt/crypt_find_hash.o src/misc/crypt/crypt_find_hash_id.o \
+src/misc/crypt/crypt_find_hash_oid.o src/misc/crypt/crypt_find_prng.o src/misc/crypt/crypt_fsa.o \
+src/misc/crypt/crypt_hash_descriptor.o src/misc/crypt/crypt_hash_is_valid.o \
+src/misc/crypt/crypt_ltc_mp_descriptor.o src/misc/crypt/crypt_prng_descriptor.o \
+src/misc/crypt/crypt_prng_is_valid.o src/misc/crypt/crypt_register_cipher.o \
+src/misc/crypt/crypt_register_hash.o src/misc/crypt/crypt_register_prng.o \
+src/misc/crypt/crypt_unregister_cipher.o src/misc/crypt/crypt_unregister_hash.o \
+src/misc/crypt/crypt_unregister_prng.o src/misc/error_to_string.o src/misc/pkcs5/pkcs_5_1.o \
+src/misc/pkcs5/pkcs_5_2.o src/misc/zeromem.o src/modes/cbc/cbc_decrypt.o src/modes/cbc/cbc_done.o \
+src/modes/cbc/cbc_encrypt.o src/modes/cbc/cbc_getiv.o src/modes/cbc/cbc_setiv.o \
+src/modes/cbc/cbc_start.o src/modes/cfb/cfb_decrypt.o src/modes/cfb/cfb_done.o \
+src/modes/cfb/cfb_encrypt.o src/modes/cfb/cfb_getiv.o src/modes/cfb/cfb_setiv.o \
+src/modes/cfb/cfb_start.o src/modes/ctr/ctr_decrypt.o src/modes/ctr/ctr_done.o \
+src/modes/ctr/ctr_encrypt.o src/modes/ctr/ctr_getiv.o src/modes/ctr/ctr_setiv.o \
+src/modes/ctr/ctr_start.o src/modes/ctr/ctr_test.o src/modes/ecb/ecb_decrypt.o src/modes/ecb/ecb_done.o \
+src/modes/ecb/ecb_encrypt.o src/modes/ecb/ecb_start.o src/modes/f8/f8_decrypt.o src/modes/f8/f8_done.o \
+src/modes/f8/f8_encrypt.o src/modes/f8/f8_getiv.o src/modes/f8/f8_setiv.o src/modes/f8/f8_start.o \
+src/modes/f8/f8_test_mode.o src/modes/lrw/lrw_decrypt.o src/modes/lrw/lrw_done.o \
+src/modes/lrw/lrw_encrypt.o src/modes/lrw/lrw_getiv.o src/modes/lrw/lrw_process.o \
+src/modes/lrw/lrw_setiv.o src/modes/lrw/lrw_start.o src/modes/lrw/lrw_test.o \
+src/modes/ofb/ofb_decrypt.o src/modes/ofb/ofb_done.o src/modes/ofb/ofb_encrypt.o \
+src/modes/ofb/ofb_getiv.o src/modes/ofb/ofb_setiv.o src/modes/ofb/ofb_start.o \
+src/modes/xts/xts_decrypt.o src/modes/xts/xts_done.o src/modes/xts/xts_encrypt.o \
+src/modes/xts/xts_init.o src/modes/xts/xts_mult_x.o src/modes/xts/xts_test.o \
+src/pk/asn1/der/bit/der_decode_bit_string.o src/pk/asn1/der/bit/der_encode_bit_string.o \
+src/pk/asn1/der/bit/der_length_bit_string.o src/pk/asn1/der/boolean/der_decode_boolean.o \
+src/pk/asn1/der/boolean/der_encode_boolean.o src/pk/asn1/der/boolean/der_length_boolean.o \
+src/pk/asn1/der/choice/der_decode_choice.o src/pk/asn1/der/ia5/der_decode_ia5_string.o \
+src/pk/asn1/der/ia5/der_encode_ia5_string.o src/pk/asn1/der/ia5/der_length_ia5_string.o \
+src/pk/asn1/der/integer/der_decode_integer.o src/pk/asn1/der/integer/der_encode_integer.o \
+src/pk/asn1/der/integer/der_length_integer.o \
 src/pk/asn1/der/object_identifier/der_decode_object_identifier.o \
 src/pk/asn1/der/object_identifier/der_encode_object_identifier.o \
 src/pk/asn1/der/object_identifier/der_length_object_identifier.o \
@@ -188,8 +191,8 @@ src/pk/asn1/der/utf8/der_decode_utf8_string.o src/pk/asn1/der/utf8/der_encode_ut
 src/pk/asn1/der/utf8/der_length_utf8_string.o src/pk/dsa/dsa_decrypt_key.o \
 src/pk/dsa/dsa_encrypt_key.o src/pk/dsa/dsa_export.o src/pk/dsa/dsa_free.o src/pk/dsa/dsa_import.o \
 src/pk/dsa/dsa_make_key.o src/pk/dsa/dsa_shared_secret.o src/pk/dsa/dsa_sign_hash.o \
-src/pk/dsa/dsa_verify_hash.o src/pk/dsa/dsa_verify_key.o src/pk/ecc/ecc.o \
-src/pk/ecc/ecc_ansi_x963_export.o src/pk/ecc/ecc_ansi_x963_import.o src/pk/ecc/ecc_decrypt_key.o \
+src/pk/dsa/dsa_verify_hash.o src/pk/dsa/dsa_verify_key.o src/pk/ecc/ecc_ansi_x963_export.o \
+src/pk/ecc/ecc_ansi_x963_import.o src/pk/ecc/ecc.o src/pk/ecc/ecc_decrypt_key.o \
 src/pk/ecc/ecc_encrypt_key.o src/pk/ecc/ecc_export.o src/pk/ecc/ecc_free.o src/pk/ecc/ecc_get_size.o \
 src/pk/ecc/ecc_import.o src/pk/ecc/ecc_make_key.o src/pk/ecc/ecc_shared_secret.o \
 src/pk/ecc/ecc_sign_hash.o src/pk/ecc/ecc_sizes.o src/pk/ecc/ecc_test.o src/pk/ecc/ecc_verify_hash.o \
@@ -275,5 +278,5 @@ timing: library testprof/$(LIBTEST) $(TIMINGS)
 	gcc -o $(TIMING) $(TIMINGS) -ltomcrypt_prof -ltomcrypt $(EXTRALIBS)
 
 # $Source: /cvs/libtom/libtomcrypt/makefile.shared,v $   
-# $Revision: 1.76 $   
-# $Date: 2006/12/02 19:23:21 $ 
+# $Revision: 1.80 $   
+# $Date: 2007/02/16 16:36:25 $ 

+ 60 - 57
makefile.unix

@@ -42,27 +42,28 @@ GROUP=wheel
 #START_INS
 OBJECTS=src/ciphers/aes/aes_enc.o src/ciphers/aes/aes.o src/ciphers/anubis.o src/ciphers/blowfish.o \
 src/ciphers/cast5.o src/ciphers/des.o src/ciphers/kasumi.o src/ciphers/khazad.o src/ciphers/kseed.o \
-src/ciphers/noekeon.o src/ciphers/rc2.o src/ciphers/rc5.o src/ciphers/rc6.o src/ciphers/safer/safer.o \
-src/ciphers/safer/safer_tab.o src/ciphers/safer/saferp.o src/ciphers/skipjack.o \
-src/ciphers/twofish/twofish.o src/ciphers/xtea.o src/encauth/ccm/ccm_memory.o \
+src/ciphers/multi2.o src/ciphers/noekeon.o src/ciphers/rc2.o src/ciphers/rc5.o src/ciphers/rc6.o \
+src/ciphers/safer/safer.o src/ciphers/safer/saferp.o src/ciphers/safer/safer_tab.o \
+src/ciphers/skipjack.o src/ciphers/twofish/twofish.o src/ciphers/xtea.o src/encauth/ccm/ccm_memory.o \
 src/encauth/ccm/ccm_test.o src/encauth/eax/eax_addheader.o src/encauth/eax/eax_decrypt.o \
-src/encauth/eax/eax_decrypt_verify_memory.o src/encauth/eax/eax_done.o src/encauth/eax/eax_encrypt.o \
-src/encauth/eax/eax_encrypt_authenticate_memory.o src/encauth/eax/eax_init.o \
-src/encauth/eax/eax_test.o src/encauth/gcm/gcm_add_aad.o src/encauth/gcm/gcm_add_iv.o \
-src/encauth/gcm/gcm_done.o src/encauth/gcm/gcm_gf_mult.o src/encauth/gcm/gcm_init.o \
-src/encauth/gcm/gcm_memory.o src/encauth/gcm/gcm_mult_h.o src/encauth/gcm/gcm_process.o \
-src/encauth/gcm/gcm_reset.o src/encauth/gcm/gcm_test.o src/encauth/ocb/ocb_decrypt.o \
-src/encauth/ocb/ocb_decrypt_verify_memory.o src/encauth/ocb/ocb_done_decrypt.o \
-src/encauth/ocb/ocb_done_encrypt.o src/encauth/ocb/ocb_encrypt.o \
-src/encauth/ocb/ocb_encrypt_authenticate_memory.o src/encauth/ocb/ocb_init.o src/encauth/ocb/ocb_ntz.o \
-src/encauth/ocb/ocb_shift_xor.o src/encauth/ocb/ocb_test.o src/encauth/ocb/s_ocb_done.o \
-src/hashes/chc/chc.o src/hashes/helper/hash_file.o src/hashes/helper/hash_filehandle.o \
-src/hashes/helper/hash_memory.o src/hashes/helper/hash_memory_multi.o src/hashes/md2.o src/hashes/md4.o \
-src/hashes/md5.o src/hashes/rmd128.o src/hashes/rmd160.o src/hashes/rmd256.o src/hashes/rmd320.o \
-src/hashes/sha1.o src/hashes/sha2/sha256.o src/hashes/sha2/sha512.o src/hashes/tiger.o \
-src/hashes/whirl/whirl.o src/mac/f9/f9_done.o src/mac/f9/f9_file.o src/mac/f9/f9_init.o \
-src/mac/f9/f9_memory.o src/mac/f9/f9_memory_multi.o src/mac/f9/f9_process.o src/mac/f9/f9_test.o \
-src/mac/hmac/hmac_done.o src/mac/hmac/hmac_file.o src/mac/hmac/hmac_init.o src/mac/hmac/hmac_memory.o \
+src/encauth/eax/eax_decrypt_verify_memory.o src/encauth/eax/eax_done.o \
+src/encauth/eax/eax_encrypt_authenticate_memory.o src/encauth/eax/eax_encrypt.o \
+src/encauth/eax/eax_init.o src/encauth/eax/eax_test.o src/encauth/gcm/gcm_add_aad.o \
+src/encauth/gcm/gcm_add_iv.o src/encauth/gcm/gcm_done.o src/encauth/gcm/gcm_gf_mult.o \
+src/encauth/gcm/gcm_init.o src/encauth/gcm/gcm_memory.o src/encauth/gcm/gcm_mult_h.o \
+src/encauth/gcm/gcm_process.o src/encauth/gcm/gcm_reset.o src/encauth/gcm/gcm_test.o \
+src/encauth/ocb/ocb_decrypt.o src/encauth/ocb/ocb_decrypt_verify_memory.o \
+src/encauth/ocb/ocb_done_decrypt.o src/encauth/ocb/ocb_done_encrypt.o \
+src/encauth/ocb/ocb_encrypt_authenticate_memory.o src/encauth/ocb/ocb_encrypt.o \
+src/encauth/ocb/ocb_init.o src/encauth/ocb/ocb_ntz.o src/encauth/ocb/ocb_shift_xor.o \
+src/encauth/ocb/ocb_test.o src/encauth/ocb/s_ocb_done.o src/hashes/chc/chc.o \
+src/hashes/helper/hash_file.o src/hashes/helper/hash_filehandle.o src/hashes/helper/hash_memory.o \
+src/hashes/helper/hash_memory_multi.o src/hashes/md2.o src/hashes/md4.o src/hashes/md5.o \
+src/hashes/rmd128.o src/hashes/rmd160.o src/hashes/rmd256.o src/hashes/rmd320.o src/hashes/sha1.o \
+src/hashes/sha2/sha256.o src/hashes/sha2/sha512.o src/hashes/tiger.o src/hashes/whirl/whirl.o \
+src/mac/f9/f9_done.o src/mac/f9/f9_file.o src/mac/f9/f9_init.o src/mac/f9/f9_memory.o \
+src/mac/f9/f9_memory_multi.o src/mac/f9/f9_process.o src/mac/f9/f9_test.o src/mac/hmac/hmac_done.o \
+src/mac/hmac/hmac_file.o src/mac/hmac/hmac_init.o src/mac/hmac/hmac_memory.o \
 src/mac/hmac/hmac_memory_multi.o src/mac/hmac/hmac_process.o src/mac/hmac/hmac_test.o \
 src/mac/omac/omac_done.o src/mac/omac/omac_file.o src/mac/omac/omac_init.o src/mac/omac/omac_memory.o \
 src/mac/omac/omac_memory_multi.o src/mac/omac/omac_process.o src/mac/omac/omac_test.o \
@@ -74,39 +75,41 @@ src/mac/xcbc/xcbc_file.o src/mac/xcbc/xcbc_init.o src/mac/xcbc/xcbc_memory.o \
 src/mac/xcbc/xcbc_memory_multi.o src/mac/xcbc/xcbc_process.o src/mac/xcbc/xcbc_test.o \
 src/math/fp/ltc_ecc_fp_mulmod.o src/math/gmp_desc.o src/math/ltm_desc.o src/math/multi.o \
 src/math/rand_prime.o src/math/tfm_desc.o src/misc/base64/base64_decode.o \
-src/misc/base64/base64_encode.o src/misc/burn_stack.o src/misc/crypt/crypt.o \
-src/misc/crypt/crypt_argchk.o src/misc/crypt/crypt_cipher_descriptor.o \
-src/misc/crypt/crypt_cipher_is_valid.o src/misc/crypt/crypt_find_cipher.o \
-src/misc/crypt/crypt_find_cipher_any.o src/misc/crypt/crypt_find_cipher_id.o \
-src/misc/crypt/crypt_find_hash.o src/misc/crypt/crypt_find_hash_any.o \
-src/misc/crypt/crypt_find_hash_id.o src/misc/crypt/crypt_find_hash_oid.o \
-src/misc/crypt/crypt_find_prng.o src/misc/crypt/crypt_fsa.o src/misc/crypt/crypt_hash_descriptor.o \
-src/misc/crypt/crypt_hash_is_valid.o src/misc/crypt/crypt_ltc_mp_descriptor.o \
-src/misc/crypt/crypt_prng_descriptor.o src/misc/crypt/crypt_prng_is_valid.o \
-src/misc/crypt/crypt_register_cipher.o src/misc/crypt/crypt_register_hash.o \
-src/misc/crypt/crypt_register_prng.o src/misc/crypt/crypt_unregister_cipher.o \
-src/misc/crypt/crypt_unregister_hash.o src/misc/crypt/crypt_unregister_prng.o \
-src/misc/error_to_string.o src/misc/pkcs5/pkcs_5_1.o src/misc/pkcs5/pkcs_5_2.o src/misc/zeromem.o \
-src/modes/cbc/cbc_decrypt.o src/modes/cbc/cbc_done.o src/modes/cbc/cbc_encrypt.o \
-src/modes/cbc/cbc_getiv.o src/modes/cbc/cbc_setiv.o src/modes/cbc/cbc_start.o \
-src/modes/cfb/cfb_decrypt.o src/modes/cfb/cfb_done.o src/modes/cfb/cfb_encrypt.o \
-src/modes/cfb/cfb_getiv.o src/modes/cfb/cfb_setiv.o src/modes/cfb/cfb_start.o \
-src/modes/ctr/ctr_decrypt.o src/modes/ctr/ctr_done.o src/modes/ctr/ctr_encrypt.o \
-src/modes/ctr/ctr_getiv.o src/modes/ctr/ctr_setiv.o src/modes/ctr/ctr_start.o src/modes/ctr/ctr_test.o \
-src/modes/ecb/ecb_decrypt.o src/modes/ecb/ecb_done.o src/modes/ecb/ecb_encrypt.o \
-src/modes/ecb/ecb_start.o src/modes/f8/f8_decrypt.o src/modes/f8/f8_done.o src/modes/f8/f8_encrypt.o \
-src/modes/f8/f8_getiv.o src/modes/f8/f8_setiv.o src/modes/f8/f8_start.o src/modes/f8/f8_test_mode.o \
-src/modes/lrw/lrw_decrypt.o src/modes/lrw/lrw_done.o src/modes/lrw/lrw_encrypt.o \
-src/modes/lrw/lrw_getiv.o src/modes/lrw/lrw_process.o src/modes/lrw/lrw_setiv.o \
-src/modes/lrw/lrw_start.o src/modes/lrw/lrw_test.o src/modes/ofb/ofb_decrypt.o src/modes/ofb/ofb_done.o \
-src/modes/ofb/ofb_encrypt.o src/modes/ofb/ofb_getiv.o src/modes/ofb/ofb_setiv.o \
-src/modes/ofb/ofb_start.o src/pk/asn1/der/bit/der_decode_bit_string.o \
-src/pk/asn1/der/bit/der_encode_bit_string.o src/pk/asn1/der/bit/der_length_bit_string.o \
-src/pk/asn1/der/boolean/der_decode_boolean.o src/pk/asn1/der/boolean/der_encode_boolean.o \
-src/pk/asn1/der/boolean/der_length_boolean.o src/pk/asn1/der/choice/der_decode_choice.o \
-src/pk/asn1/der/ia5/der_decode_ia5_string.o src/pk/asn1/der/ia5/der_encode_ia5_string.o \
-src/pk/asn1/der/ia5/der_length_ia5_string.o src/pk/asn1/der/integer/der_decode_integer.o \
-src/pk/asn1/der/integer/der_encode_integer.o src/pk/asn1/der/integer/der_length_integer.o \
+src/misc/base64/base64_encode.o src/misc/burn_stack.o src/misc/crypt/crypt_argchk.o \
+src/misc/crypt/crypt.o src/misc/crypt/crypt_cipher_descriptor.o src/misc/crypt/crypt_cipher_is_valid.o \
+src/misc/crypt/crypt_find_cipher_any.o src/misc/crypt/crypt_find_cipher.o \
+src/misc/crypt/crypt_find_cipher_id.o src/misc/crypt/crypt_find_hash_any.o \
+src/misc/crypt/crypt_find_hash.o src/misc/crypt/crypt_find_hash_id.o \
+src/misc/crypt/crypt_find_hash_oid.o src/misc/crypt/crypt_find_prng.o src/misc/crypt/crypt_fsa.o \
+src/misc/crypt/crypt_hash_descriptor.o src/misc/crypt/crypt_hash_is_valid.o \
+src/misc/crypt/crypt_ltc_mp_descriptor.o src/misc/crypt/crypt_prng_descriptor.o \
+src/misc/crypt/crypt_prng_is_valid.o src/misc/crypt/crypt_register_cipher.o \
+src/misc/crypt/crypt_register_hash.o src/misc/crypt/crypt_register_prng.o \
+src/misc/crypt/crypt_unregister_cipher.o src/misc/crypt/crypt_unregister_hash.o \
+src/misc/crypt/crypt_unregister_prng.o src/misc/error_to_string.o src/misc/pkcs5/pkcs_5_1.o \
+src/misc/pkcs5/pkcs_5_2.o src/misc/zeromem.o src/modes/cbc/cbc_decrypt.o src/modes/cbc/cbc_done.o \
+src/modes/cbc/cbc_encrypt.o src/modes/cbc/cbc_getiv.o src/modes/cbc/cbc_setiv.o \
+src/modes/cbc/cbc_start.o src/modes/cfb/cfb_decrypt.o src/modes/cfb/cfb_done.o \
+src/modes/cfb/cfb_encrypt.o src/modes/cfb/cfb_getiv.o src/modes/cfb/cfb_setiv.o \
+src/modes/cfb/cfb_start.o src/modes/ctr/ctr_decrypt.o src/modes/ctr/ctr_done.o \
+src/modes/ctr/ctr_encrypt.o src/modes/ctr/ctr_getiv.o src/modes/ctr/ctr_setiv.o \
+src/modes/ctr/ctr_start.o src/modes/ctr/ctr_test.o src/modes/ecb/ecb_decrypt.o src/modes/ecb/ecb_done.o \
+src/modes/ecb/ecb_encrypt.o src/modes/ecb/ecb_start.o src/modes/f8/f8_decrypt.o src/modes/f8/f8_done.o \
+src/modes/f8/f8_encrypt.o src/modes/f8/f8_getiv.o src/modes/f8/f8_setiv.o src/modes/f8/f8_start.o \
+src/modes/f8/f8_test_mode.o src/modes/lrw/lrw_decrypt.o src/modes/lrw/lrw_done.o \
+src/modes/lrw/lrw_encrypt.o src/modes/lrw/lrw_getiv.o src/modes/lrw/lrw_process.o \
+src/modes/lrw/lrw_setiv.o src/modes/lrw/lrw_start.o src/modes/lrw/lrw_test.o \
+src/modes/ofb/ofb_decrypt.o src/modes/ofb/ofb_done.o src/modes/ofb/ofb_encrypt.o \
+src/modes/ofb/ofb_getiv.o src/modes/ofb/ofb_setiv.o src/modes/ofb/ofb_start.o \
+src/modes/xts/xts_decrypt.o src/modes/xts/xts_done.o src/modes/xts/xts_encrypt.o \
+src/modes/xts/xts_init.o src/modes/xts/xts_mult_x.o src/modes/xts/xts_test.o \
+src/pk/asn1/der/bit/der_decode_bit_string.o src/pk/asn1/der/bit/der_encode_bit_string.o \
+src/pk/asn1/der/bit/der_length_bit_string.o src/pk/asn1/der/boolean/der_decode_boolean.o \
+src/pk/asn1/der/boolean/der_encode_boolean.o src/pk/asn1/der/boolean/der_length_boolean.o \
+src/pk/asn1/der/choice/der_decode_choice.o src/pk/asn1/der/ia5/der_decode_ia5_string.o \
+src/pk/asn1/der/ia5/der_encode_ia5_string.o src/pk/asn1/der/ia5/der_length_ia5_string.o \
+src/pk/asn1/der/integer/der_decode_integer.o src/pk/asn1/der/integer/der_encode_integer.o \
+src/pk/asn1/der/integer/der_length_integer.o \
 src/pk/asn1/der/object_identifier/der_decode_object_identifier.o \
 src/pk/asn1/der/object_identifier/der_encode_object_identifier.o \
 src/pk/asn1/der/object_identifier/der_length_object_identifier.o \
@@ -129,8 +132,8 @@ src/pk/asn1/der/utf8/der_decode_utf8_string.o src/pk/asn1/der/utf8/der_encode_ut
 src/pk/asn1/der/utf8/der_length_utf8_string.o src/pk/dsa/dsa_decrypt_key.o \
 src/pk/dsa/dsa_encrypt_key.o src/pk/dsa/dsa_export.o src/pk/dsa/dsa_free.o src/pk/dsa/dsa_import.o \
 src/pk/dsa/dsa_make_key.o src/pk/dsa/dsa_shared_secret.o src/pk/dsa/dsa_sign_hash.o \
-src/pk/dsa/dsa_verify_hash.o src/pk/dsa/dsa_verify_key.o src/pk/ecc/ecc.o \
-src/pk/ecc/ecc_ansi_x963_export.o src/pk/ecc/ecc_ansi_x963_import.o src/pk/ecc/ecc_decrypt_key.o \
+src/pk/dsa/dsa_verify_hash.o src/pk/dsa/dsa_verify_key.o src/pk/ecc/ecc_ansi_x963_export.o \
+src/pk/ecc/ecc_ansi_x963_import.o src/pk/ecc/ecc.o src/pk/ecc/ecc_decrypt_key.o \
 src/pk/ecc/ecc_encrypt_key.o src/pk/ecc/ecc_export.o src/pk/ecc/ecc_free.o src/pk/ecc/ecc_get_size.o \
 src/pk/ecc/ecc_import.o src/pk/ecc/ecc_make_key.o src/pk/ecc/ecc_shared_secret.o \
 src/pk/ecc/ecc_sign_hash.o src/pk/ecc/ecc_sizes.o src/pk/ecc/ecc_test.o src/pk/ecc/ecc_verify_hash.o \
@@ -235,5 +238,5 @@ install_test: testprof/$(LIBTEST)
 	install -g $(GROUP) -o $(USER) testprof/$(LIBTEST) $(DESTDIR)$(LIBPATH)
 
 # $Source: /cvs/libtom/libtomcrypt/makefile.unix,v $ 
-# $Revision: 1.4 $ 
-# $Date: 2006/12/02 19:23:21 $ 
+# $Revision: 1.7 $ 
+# $Date: 2007/02/16 16:36:25 $ 

+ 1 - 1
notes/etc/saferp_optimizer.c

@@ -1,4 +1,4 @@
-/* emits an optimized version of SAFER+ ... only does encrypt so far... */
+/* emits an optimized version of LTC_SAFER+ ... only does encrypt so far... */
 
 #include <stdio.h>
 #include <string.h>

+ 1 - 1
notes/tech0005.txt

@@ -12,7 +12,7 @@ You can disable whole classes of algorithms on the command line with the LTC_NO_
 The following build with GCC 3.4.4 on an AMD64 box gets you AES, CTR mode, SHA-256, HMAC, Yarrow, full RSA PKCS #1, PKCS #5 and ASN.1 DER in 
 roughly 40KB of code (49KB on the ARMv4) (both excluding the math library).
 
-CFLAGS="-DLTC_NO_CIPHERS -DLTC_NO_HASHES -DLTC_NO_PRNGS -DLTC_NO_MACS -DLTC_NO_MODES -DLTC_NO_PK -DRIJNDAEL -DLTC_CTR_MODE -DSHA256 \
+CFLAGS="-DLTC_NO_CIPHERS -DLTC_NO_HASHES -DLTC_NO_PRNGS -DLTC_NO_MACS -DLTC_NO_MODES -DLTC_NO_PK -DLTC_RIJNDAEL -DLTC_CTR_MODE -DSHA256 \
 -DLTC_HMAC -DYARROW -DMRSA -DMPI -DTFM_DESC -DARGTYPE=3 -Os -DLTC_SMALL_CODE -fomit-frame-pointer" make IGNORE_SPEED=1
 
 Obviously this won't get you performance but if you need to pack a crypto lib in a device with limited means it's more than enough...

+ 2 - 2
src/ciphers/aes/aes.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /* AES implementation by Tom St Denis
@@ -32,7 +32,7 @@
 
 #include "tomcrypt.h"
 
-#ifdef RIJNDAEL
+#ifdef LTC_RIJNDAEL
 
 #ifndef ENCRYPT_ONLY 
 

+ 1 - 1
src/ciphers/aes/aes_tab.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 /* The precomputed tables for AES */
 /*

+ 6 - 6
src/ciphers/anubis.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /**
@@ -17,7 +17,7 @@
 
 #include "tomcrypt.h"
 
-#ifdef ANUBIS
+#ifdef LTC_ANUBIS
 
 const struct ltc_cipher_descriptor anubis_desc = {
    "anubis",
@@ -48,7 +48,7 @@ const struct ltc_cipher_descriptor anubis_desc = {
  * (but little-endian notation would be equally suitable if consistently
  * employed).
  */
-#if defined(ANUBIS_TWEAK)
+#if defined(LTC_ANUBIS_TWEAK)
 
 static const ulong32 T0[256] = {
     0xba69d2bbU, 0x54a84de5U, 0x2f5ebce2U, 0x74e8cd25U,
@@ -1174,8 +1174,8 @@ int anubis_test(void)
      int keylen;
      unsigned char pt[16], ct[16], key[40];
   } tests[] = {
-#ifndef ANUBIS_TWEAK
-  /**** ORIGINAL ANUBIS ****/
+#ifndef LTC_ANUBIS_TWEAK
+  /**** ORIGINAL LTC_ANUBIS ****/
   /* 128 bit keys */
 {
    16,
@@ -1333,7 +1333,7 @@ int anubis_test(void)
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }
 }
 #else
-  /**** Tweaked ANUBIS ****/
+  /**** Tweaked LTC_ANUBIS ****/
   /* 128 bit keys */
 {
    16,

+ 2 - 2
src/ciphers/blowfish.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 /**
   @file blowfish.c
@@ -14,7 +14,7 @@
 */
 #include "tomcrypt.h"
 
-#ifdef BLOWFISH
+#ifdef LTC_BLOWFISH
 
 const struct ltc_cipher_descriptor blowfish_desc =
 {

+ 7 - 7
src/ciphers/cast5.c

@@ -6,16 +6,16 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
  
  /** 
    @file cast5.c
-   Implementation of CAST5 (RFC 2144) by Tom St Denis 
+   Implementation of LTC_CAST5 (RFC 2144) by Tom St Denis 
  */
 #include "tomcrypt.h"
 
-#ifdef CAST5
+#ifdef LTC_CAST5
 
 const struct ltc_cipher_descriptor cast5_desc = {
    "cast5",
@@ -398,7 +398,7 @@ static const ulong32 S8[256] = {
 #endif   
 
  /**
-    Initialize the CAST5 block cipher
+    Initialize the LTC_CAST5 block cipher
     @param key The symmetric key you wish to pass
     @param keylen The key length in bytes
     @param num_rounds The number of rounds desired (0 for default)
@@ -530,7 +530,7 @@ INLINE static ulong32 FIII(ulong32 R, ulong32 Km, ulong32 Kr)
 }
 
 /**
-  Encrypts a block of text with CAST5
+  Encrypts a block of text with LTC_CAST5
   @param pt The input plaintext (8 bytes)
   @param ct The output ciphertext (8 bytes)
   @param skey The key as scheduled
@@ -583,7 +583,7 @@ int cast5_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key
 #endif
 
 /**
-  Decrypts a block of text with CAST5
+  Decrypts a block of text with LTC_CAST5
   @param ct The input ciphertext (8 bytes)
   @param pt The output plaintext (8 bytes)
   @param skey The key as scheduled 
@@ -636,7 +636,7 @@ int cast5_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key
 #endif
 
 /**
-  Performs a self-test of the CAST5 block cipher
+  Performs a self-test of the LTC_CAST5 block cipher
   @return CRYPT_OK if functional, CRYPT_NOP if self-test has been disabled
 */
 int cast5_test(void)

+ 10 - 10
src/ciphers/des.c

@@ -6,16 +6,16 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 #include "tomcrypt.h"
 
 /** 
   @file des.c
-  DES code submitted by Dobes Vandermeer 
+  LTC_DES code submitted by Dobes Vandermeer 
 */
 
-#ifdef DES
+#ifdef LTC_DES
 
 #define EN0 0 
 #define DE1 1
@@ -1519,7 +1519,7 @@ static void desfunc(ulong32 *block, const ulong32 *keys)
 #endif
 
  /**
-    Initialize the DES block cipher
+    Initialize the LTC_DES block cipher
     @param key The symmetric key you wish to pass
     @param keylen The key length in bytes
     @param num_rounds The number of rounds desired (0 for default)
@@ -1546,7 +1546,7 @@ int des_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_ke
 }
 
  /**
-    Initialize the 3DES-EDE block cipher
+    Initialize the 3LTC_DES-EDE block cipher
     @param key The symmetric key you wish to pass
     @param keylen The key length in bytes
     @param num_rounds The number of rounds desired (0 for default)
@@ -1578,7 +1578,7 @@ int des3_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_k
 }
 
 /**
-  Encrypts a block of text with DES
+  Encrypts a block of text with LTC_DES
   @param pt The input plaintext (8 bytes)
   @param ct The output ciphertext (8 bytes)
   @param skey The key as scheduled
@@ -1599,7 +1599,7 @@ int des_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *s
 }
 
 /**
-  Decrypts a block of text with DES
+  Decrypts a block of text with LTC_DES
   @param ct The input ciphertext (8 bytes)
   @param pt The output plaintext (8 bytes)
   @param skey The key as scheduled 
@@ -1620,7 +1620,7 @@ int des_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *s
 }
 
 /**
-  Encrypts a block of text with 3DES-EDE
+  Encrypts a block of text with 3LTC_DES-EDE
   @param pt The input plaintext (8 bytes)
   @param ct The output ciphertext (8 bytes)
   @param skey The key as scheduled
@@ -1644,7 +1644,7 @@ int des3_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *
 }
 
 /**
-  Decrypts a block of text with 3DES-EDE
+  Decrypts a block of text with 3LTC_DES-EDE
   @param ct The input ciphertext (8 bytes)
   @param pt The output plaintext (8 bytes)
   @param skey The key as scheduled 
@@ -1667,7 +1667,7 @@ int des3_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *
 }
 
 /**
-  Performs a self-test of the DES block cipher
+  Performs a self-test of the LTC_DES block cipher
   @return CRYPT_OK if functional, CRYPT_NOP if self-test has been disabled
 */
 int des_test(void)

+ 1 - 1
src/ciphers/kasumi.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /**

+ 2 - 2
src/ciphers/khazad.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 #include "tomcrypt.h"
 
@@ -16,7 +16,7 @@
   Authors: Paulo S.L.M. Barreto and Vincent Rijmen.
 */
 
-#ifdef KHAZAD
+#ifdef LTC_KHAZAD
 
 const struct ltc_cipher_descriptor khazad_desc = {
    "khazad",

+ 2 - 2
src/ciphers/kseed.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /**
@@ -17,7 +17,7 @@
 
 #include "tomcrypt.h"
 
-#ifdef KSEED
+#ifdef LTC_KSEED
 
 const struct ltc_cipher_descriptor kseed_desc = {
    "seed",

+ 303 - 0
src/ciphers/multi2.c

@@ -0,0 +1,303 @@
+/* LibTomCrypt, modular cryptographic library -- Tom St Denis
+ *
+ * LibTomCrypt is a library that provides various cryptographic
+ * algorithms in a highly modular and flexible manner.
+ *
+ * The library is free for all purposes without any express
+ * guarantee it works.
+ *
+ * Tom St Denis, [email protected], http://libtom.org
+ */
+
+/**
+  @file multi2.c
+  Multi-2 implementation (not public domain, hence the default disable)
+*/
+#include "tomcrypt.h"
+
+#ifdef LTC_MULTI2
+
+static void pi1(ulong32 *p)
+{
+   p[1] ^= p[0];
+}
+
+static void pi2(ulong32 *p, ulong32 *k)
+{
+   ulong32 t;
+   t = (p[1] + k[0]) & 0xFFFFFFFFUL;
+   t = (ROL(t, 1) + t - 1)  & 0xFFFFFFFFUL;
+   t = (ROL(t, 4) ^ t)  & 0xFFFFFFFFUL;
+   p[0] ^= t;
+}
+
+static void pi3(ulong32 *p, ulong32 *k)
+{
+   ulong32 t;
+   t = p[0] + k[1];
+   t = (ROL(t, 2) + t + 1)  & 0xFFFFFFFFUL;
+   t = (ROL(t, 8) ^ t)  & 0xFFFFFFFFUL;
+   t = (t + k[2])  & 0xFFFFFFFFUL;
+   t = (ROL(t, 1) - t)  & 0xFFFFFFFFUL;
+   t = ROL(t, 16) ^ (p[0] | t);
+   p[1] ^= t;
+}
+
+static void pi4(ulong32 *p, ulong32 *k)
+{
+   ulong32 t;
+   t = (p[1] + k[3])  & 0xFFFFFFFFUL;
+   t = (ROL(t, 2) + t + 1)  & 0xFFFFFFFFUL;
+   p[0] ^= t;
+}
+
+static void setup(ulong32 *dk, ulong32 *k, ulong32 *uk)
+{
+   int n, t;
+   ulong32 p[2];
+
+   p[0] = dk[0]; p[1] = dk[1];
+
+   t = 4; 
+   n = 0;
+      pi1(p);
+      pi2(p, k);
+      uk[n++] = p[0];
+      pi3(p, k);
+      uk[n++] = p[1];
+      pi4(p, k);
+      uk[n++] = p[0];
+      pi1(p);
+      uk[n++] = p[1];
+      pi2(p, k+t);
+      uk[n++] = p[0];
+      pi3(p, k+t);
+      uk[n++] = p[1];
+      pi4(p, k+t);
+      uk[n++] = p[0];
+      pi1(p);
+      uk[n++] = p[1];
+}
+
+static void encrypt(ulong32 *p, int N, ulong32 *uk)
+{
+   int n, t;
+   for (t = n = 0; ; ) {
+      pi1(p); if (++n == N) break;       
+      pi2(p, uk+t); if (++n == N) break;
+      pi3(p, uk+t); if (++n == N) break;
+      pi4(p, uk+t); if (++n == N) break;
+      t ^= 4;
+   }
+} 
+
+static void decrypt(ulong32 *p, int N, ulong32 *uk)
+{
+   int n, t;
+   for (t = 4*((N&1)^1), n = N; ;  ) {
+      switch (n >= 4 ? 4 : 0) {
+         case 4: pi4(p, uk+t); --n;
+         case 3: pi3(p, uk+t); --n;
+         case 2: pi2(p, uk+t); --n;
+         case 1: pi1(p); --n; break;
+         case 0: return;
+      }
+      t ^= 4;
+   }
+} 
+
+const struct ltc_cipher_descriptor multi2_desc = {
+   "multi2",
+   22,
+   40, 40, 8, 128,
+   &multi2_setup,
+   &multi2_ecb_encrypt,
+   &multi2_ecb_decrypt,
+   &multi2_test,
+   &multi2_done,
+   &multi2_keysize,
+   NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
+};
+
+int  multi2_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey)
+{
+   ulong32 sk[8], dk[2];
+   int      x;
+
+   LTC_ARGCHK(key  != NULL);
+   LTC_ARGCHK(skey != NULL);
+
+   if (keylen != 40) return CRYPT_INVALID_KEYSIZE;
+   if (num_rounds == 0) num_rounds = 128;
+   
+   skey->multi2.N = num_rounds;
+   for (x = 0; x < 8; x++) {
+       LOAD32H(sk[x], key + x*4);
+   }
+   LOAD32H(dk[0], key + 32);
+   LOAD32H(dk[1], key + 36);
+   setup(dk, sk, skey->multi2.uk);
+
+   zeromem(sk, sizeof(sk));
+   zeromem(dk, sizeof(dk));
+   return CRYPT_OK;
+}
+
+/**
+  Encrypts a block of text with multi2
+  @param pt The input plaintext (8 bytes)
+  @param ct The output ciphertext (8 bytes)
+  @param skey The key as scheduled
+  @return CRYPT_OK if successful
+*/
+int multi2_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey)
+{
+   ulong32 p[2];
+   LTC_ARGCHK(pt   != NULL);
+   LTC_ARGCHK(ct   != NULL);
+   LTC_ARGCHK(skey != NULL);
+   LOAD32H(p[0], pt);
+   LOAD32H(p[1], pt+4);
+   encrypt(p, skey->multi2.N, skey->multi2.uk);
+   STORE32H(p[0], ct);   
+   STORE32H(p[1], ct+4);
+   return CRYPT_OK;
+}
+
+/**
+  Decrypts a block of text with multi2
+  @param ct The input ciphertext (8 bytes)
+  @param pt The output plaintext (8 bytes)
+  @param skey The key as scheduled
+  @return CRYPT_OK if successful
+*/
+int multi2_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey)
+{
+   ulong32 p[2];
+   LTC_ARGCHK(pt   != NULL);
+   LTC_ARGCHK(ct   != NULL);
+   LTC_ARGCHK(skey != NULL);
+   LOAD32H(p[0], ct);
+   LOAD32H(p[1], ct+4);
+   decrypt(p, skey->multi2.N, skey->multi2.uk);
+   STORE32H(p[0], pt);   
+   STORE32H(p[1], pt+4);
+   return CRYPT_OK;
+}
+
+/**
+  Performs a self-test of the multi2 block cipher
+  @return CRYPT_OK if functional, CRYPT_NOP if self-test has been disabled
+*/
+int multi2_test(void)
+{
+   static const struct {
+      unsigned char key[40];
+      unsigned char pt[8], ct[8];
+      int           rounds;
+   } tests[] = {
+{
+   {
+      0x00, 0x00, 0x00, 0x00,
+      0x00, 0x00, 0x00, 0x00,
+      0x00, 0x00, 0x00, 0x00,
+      0x00, 0x00, 0x00, 0x00,
+
+      0x00, 0x00, 0x00, 0x00,
+      0x00, 0x00, 0x00, 0x00,
+      0x00, 0x00, 0x00, 0x00,
+      0x00, 0x00, 0x00, 0x00,
+   
+      0x01, 0x23, 0x45, 0x67,
+      0x89, 0xAB, 0xCD, 0xEF
+   },
+   {
+      0x00, 0x00, 0x00, 0x00,
+      0x00, 0x00, 0x00, 0x01,
+   },
+   {
+      0xf8, 0x94, 0x40, 0x84,
+      0x5e, 0x11, 0xcf, 0x89
+   },
+   128,
+},
+{
+   {
+      0x35, 0x91, 0x9d, 0x96,
+      0x07, 0x02, 0xe2, 0xce,
+      0x8d, 0x0b, 0x58, 0x3c,
+      0xc9, 0xc8, 0x9d, 0x59,
+      0xa2, 0xae, 0x96, 0x4e,
+      0x87, 0x82, 0x45, 0xed,
+      0x3f, 0x2e, 0x62, 0xd6,
+      0x36, 0x35, 0xd0, 0x67,
+
+      0xb1, 0x27, 0xb9, 0x06,
+      0xe7, 0x56, 0x22, 0x38,
+   },
+   { 
+      0x1f, 0xb4, 0x60, 0x60,
+      0xd0, 0xb3, 0x4f, 0xa5
+   },
+   {
+      0xca, 0x84, 0xa9, 0x34,
+      0x75, 0xc8, 0x60, 0xe5
+   },
+   216,
+}
+};
+   unsigned char buf[8];
+   symmetric_key skey;
+   int err, x;
+
+   for (x = 1; x < (int)(sizeof(tests)/sizeof(tests[0])); x++) {
+      if ((err = multi2_setup(tests[x].key, 40, tests[x].rounds, &skey)) != CRYPT_OK) {
+         return err;
+      }
+      if ((err = multi2_ecb_encrypt(tests[x].pt, buf, &skey)) != CRYPT_OK) {
+         return err;
+      }
+
+      if (XMEMCMP(buf, tests[x].ct, 8)) {
+         return CRYPT_FAIL_TESTVECTOR;
+      }
+   
+      if ((err = multi2_ecb_decrypt(buf, buf, &skey)) != CRYPT_OK) {
+         return err;
+      }
+      if (XMEMCMP(buf, tests[x].pt, 8)) {
+         return CRYPT_FAIL_TESTVECTOR;
+      }
+   }
+   
+   return CRYPT_OK;
+}
+
+/** Terminate the context 
+   @param skey    The scheduled key
+*/
+void multi2_done(symmetric_key *skey)
+{
+}
+
+/**
+  Gets suitable key size
+  @param keysize [in/out] The length of the recommended key (in bytes).  This function will store the suitable size back in this variable.
+  @return CRYPT_OK if the input key size is acceptable.
+*/
+int multi2_keysize(int *keysize)
+{
+   LTC_ARGCHK(keysize != NULL);
+   if (*keysize >= 40) {
+      *keysize = 40;
+   } else {
+      return CRYPT_INVALID_KEYSIZE;
+   }
+   return CRYPT_OK;
+}
+
+#endif
+
+/* $Source$ */
+/* $Revision$ */
+/* $Date$ */

+ 2 - 2
src/ciphers/noekeon.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 /**
    @file noekeon.c
@@ -14,7 +14,7 @@
 */
 #include "tomcrypt.h"
 
-#ifdef NOEKEON
+#ifdef LTC_NOEKEON
 
 const struct ltc_cipher_descriptor noekeon_desc =
 {

+ 7 - 7
src/ciphers/rc2.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 /**********************************************************************\
 * To commemorate the 1996 RSA Data Security Conference, the following  *
@@ -22,10 +22,10 @@
 
 /**
   @file rc2.c
-  Implementation of RC2
+  Implementation of LTC_RC2
 */  
 
-#ifdef RC2
+#ifdef LTC_RC2
 
 const struct ltc_cipher_descriptor rc2_desc = {
    "rc2",
@@ -60,7 +60,7 @@ static const unsigned char permute[256] = {
 };
 
  /**
-    Initialize the RC2 block cipher
+    Initialize the LTC_RC2 block cipher
     @param key The symmetric key you wish to pass
     @param keylen The key length in bytes
     @param num_rounds The number of rounds desired (0 for default)
@@ -121,7 +121,7 @@ int rc2_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_ke
 * Encrypt an 8-byte block of plaintext using the given key.            *
 \**********************************************************************/
 /**
-  Encrypts a block of text with RC2
+  Encrypts a block of text with LTC_RC2
   @param pt The input plaintext (8 bytes)
   @param ct The output ciphertext (8 bytes)
   @param skey The key as scheduled
@@ -199,7 +199,7 @@ int rc2_ecb_encrypt( const unsigned char *pt,
 * Decrypt an 8-byte block of ciphertext using the given key.           *
 \**********************************************************************/
 /**
-  Decrypts a block of text with RC2
+  Decrypts a block of text with LTC_RC2
   @param ct The input ciphertext (8 bytes)
   @param pt The output plaintext (8 bytes)
   @param skey The key as scheduled 
@@ -275,7 +275,7 @@ int rc2_ecb_decrypt( const unsigned char *ct,
 #endif
 
 /**
-  Performs a self-test of the RC2 block cipher
+  Performs a self-test of the LTC_RC2 block cipher
   @return CRYPT_OK if functional, CRYPT_NOP if self-test has been disabled
 */
 int rc2_test(void)

+ 7 - 7
src/ciphers/rc5.c

@@ -6,17 +6,17 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /**
    @file rc5.c
-   RC5 code by Tom St Denis 
+   LTC_RC5 code by Tom St Denis 
 */
 
 #include "tomcrypt.h"
 
-#ifdef RC5
+#ifdef LTC_RC5
 
 const struct ltc_cipher_descriptor rc5_desc =
 {
@@ -43,7 +43,7 @@ static const ulong32 stab[50] = {
 };
 
  /**
-    Initialize the RC5 block cipher
+    Initialize the LTC_RC5 block cipher
     @param key The symmetric key you wish to pass
     @param keylen The key length in bytes
     @param num_rounds The number of rounds desired (0 for default)
@@ -119,7 +119,7 @@ int rc5_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_ke
 #endif
 
 /**
-  Encrypts a block of text with RC5
+  Encrypts a block of text with LTC_RC5
   @param pt The input plaintext (8 bytes)
   @param ct The output ciphertext (8 bytes)
   @param skey The key as scheduled
@@ -174,7 +174,7 @@ int rc5_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *s
 #endif
 
 /**
-  Decrypts a block of text with RC5
+  Decrypts a block of text with LTC_RC5
   @param ct The input ciphertext (8 bytes)
   @param pt The output plaintext (8 bytes)
   @param skey The key as scheduled 
@@ -230,7 +230,7 @@ int rc5_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *s
 #endif
 
 /**
-  Performs a self-test of the RC5 block cipher
+  Performs a self-test of the LTC_RC5 block cipher
   @return CRYPT_OK if functional, CRYPT_NOP if self-test has been disabled
 */
 int rc5_test(void)

+ 8 - 8
src/ciphers/rc6.c

@@ -6,16 +6,16 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /**
    @file rc6.c
-   RC6 code by Tom St Denis 
+   LTC_RC6 code by Tom St Denis 
 */
 #include "tomcrypt.h"
 
-#ifdef RC6
+#ifdef LTC_RC6
 
 const struct ltc_cipher_descriptor rc6_desc =
 {
@@ -40,7 +40,7 @@ static const ulong32 stab[44] = {
 0x708c564bUL, 0x0ec3d004UL, 0xacfb49bdUL, 0x4b32c376UL };
 
  /**
-    Initialize the RC6 block cipher
+    Initialize the LTC_RC6 block cipher
     @param key The symmetric key you wish to pass
     @param keylen The key length in bytes
     @param num_rounds The number of rounds desired (0 for default)
@@ -114,7 +114,7 @@ int rc6_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_ke
 #endif
 
 /**
-  Encrypts a block of text with RC6
+  Encrypts a block of text with LTC_RC6
   @param pt The input plaintext (16 bytes)
   @param ct The output ciphertext (16 bytes)
   @param skey The key as scheduled
@@ -168,7 +168,7 @@ int rc6_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *s
 #endif
 
 /**
-  Decrypts a block of text with RC6
+  Decrypts a block of text with LTC_RC6
   @param ct The input ciphertext (16 bytes)
   @param pt The output plaintext (16 bytes)
   @param skey The key as scheduled 
@@ -224,7 +224,7 @@ int rc6_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *s
 #endif
 
 /**
-  Performs a self-test of the RC6 block cipher
+  Performs a self-test of the LTC_RC6 block cipher
   @return CRYPT_OK if functional, CRYPT_NOP if self-test has been disabled
 */
 int rc6_test(void)
@@ -339,7 +339,7 @@ int rc6_keysize(int *keysize)
    return CRYPT_OK;
 }
 
-#endif /*RC6*/
+#endif /*LTC_RC6*/
 
 
 

+ 37 - 37
src/ciphers/safer/safer.c

@@ -6,16 +6,16 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /*******************************************************************************
 *
 * FILE:           safer.c
 *
-* DESCRIPTION:    block-cipher algorithm SAFER (Secure And Fast Encryption
-*                 Routine) in its four versions: SAFER K-64, SAFER K-128,
-*                 SAFER SK-64 and SAFER SK-128.
+* LTC_DESCRIPTION:    block-cipher algorithm LTC_SAFER (Secure And Fast Encryption
+*                 Routine) in its four versions: LTC_SAFER K-64, LTC_SAFER K-128,
+*                 LTC_SAFER SK-64 and LTC_SAFER SK-128.
 *
 * AUTHOR:         Richard De Moliner ([email protected])
 *                 Signal and Information Processing Laboratory
@@ -30,12 +30,12 @@
 
 #include <tomcrypt.h>
 
-#ifdef SAFER
+#ifdef LTC_SAFER
 
 const struct ltc_cipher_descriptor 
    safer_k64_desc = {
    "safer-k64", 
-   8, 8, 8, 8, SAFER_K64_DEFAULT_NOF_ROUNDS,
+   8, 8, 8, 8, LTC_SAFER_K64_DEFAULT_NOF_ROUNDS,
    &safer_k64_setup,
    &safer_ecb_encrypt,
    &safer_ecb_decrypt,
@@ -47,7 +47,7 @@ const struct ltc_cipher_descriptor
 
    safer_sk64_desc = {
    "safer-sk64",
-   9, 8, 8, 8, SAFER_SK64_DEFAULT_NOF_ROUNDS,
+   9, 8, 8, 8, LTC_SAFER_SK64_DEFAULT_NOF_ROUNDS,
    &safer_sk64_setup,
    &safer_ecb_encrypt,
    &safer_ecb_decrypt,
@@ -59,7 +59,7 @@ const struct ltc_cipher_descriptor
 
    safer_k128_desc = {
    "safer-k128",
-   10, 16, 16, 8, SAFER_K128_DEFAULT_NOF_ROUNDS,
+   10, 16, 16, 8, LTC_SAFER_K128_DEFAULT_NOF_ROUNDS,
    &safer_k128_setup,
    &safer_ecb_encrypt,
    &safer_ecb_decrypt,
@@ -71,7 +71,7 @@ const struct ltc_cipher_descriptor
 
    safer_sk128_desc = {
    "safer-sk128",
-   11, 16, 16, 8, SAFER_SK128_DEFAULT_NOF_ROUNDS,
+   11, 16, 16, 8, LTC_SAFER_SK128_DEFAULT_NOF_ROUNDS,
    &safer_sk128_setup,
    &safer_ecb_encrypt,
    &safer_ecb_decrypt,
@@ -111,48 +111,48 @@ static void Safer_Expand_Userkey(const unsigned char *userkey_1,
                                  safer_key_t key)
 #endif
 {   unsigned int i, j, k;
-    unsigned char ka[SAFER_BLOCK_LEN + 1];
-    unsigned char kb[SAFER_BLOCK_LEN + 1];
+    unsigned char ka[LTC_SAFER_BLOCK_LEN + 1];
+    unsigned char kb[LTC_SAFER_BLOCK_LEN + 1];
 
-    if (SAFER_MAX_NOF_ROUNDS < nof_rounds)
-        nof_rounds = SAFER_MAX_NOF_ROUNDS;
+    if (LTC_SAFER_MAX_NOF_ROUNDS < nof_rounds)
+        nof_rounds = LTC_SAFER_MAX_NOF_ROUNDS;
     *key++ = (unsigned char)nof_rounds;
-    ka[SAFER_BLOCK_LEN] = (unsigned char)0;
-    kb[SAFER_BLOCK_LEN] = (unsigned char)0;
+    ka[LTC_SAFER_BLOCK_LEN] = (unsigned char)0;
+    kb[LTC_SAFER_BLOCK_LEN] = (unsigned char)0;
     k = 0;
-    for (j = 0; j < SAFER_BLOCK_LEN; j++) {
+    for (j = 0; j < LTC_SAFER_BLOCK_LEN; j++) {
         ka[j] = ROL8(userkey_1[j], 5);
-        ka[SAFER_BLOCK_LEN] ^= ka[j];
+        ka[LTC_SAFER_BLOCK_LEN] ^= ka[j];
         kb[j] = *key++ = userkey_2[j];
-        kb[SAFER_BLOCK_LEN] ^= kb[j];
+        kb[LTC_SAFER_BLOCK_LEN] ^= kb[j];
     }
     for (i = 1; i <= nof_rounds; i++) {
-        for (j = 0; j < SAFER_BLOCK_LEN + 1; j++) {
+        for (j = 0; j < LTC_SAFER_BLOCK_LEN + 1; j++) {
             ka[j] = ROL8(ka[j], 6);
             kb[j] = ROL8(kb[j], 6);
         }
         if (strengthened) {
            k = 2 * i - 1;
-           while (k >= (SAFER_BLOCK_LEN + 1)) { k -= SAFER_BLOCK_LEN + 1; }
+           while (k >= (LTC_SAFER_BLOCK_LEN + 1)) { k -= LTC_SAFER_BLOCK_LEN + 1; }
         }
-        for (j = 0; j < SAFER_BLOCK_LEN; j++) {
+        for (j = 0; j < LTC_SAFER_BLOCK_LEN; j++) {
             if (strengthened) {
                 *key++ = (ka[k]
                                 + safer_ebox[(int)safer_ebox[(int)((18 * i + j + 1)&0xFF)]]) & 0xFF;
-                if (++k == (SAFER_BLOCK_LEN + 1)) { k = 0; }
+                if (++k == (LTC_SAFER_BLOCK_LEN + 1)) { k = 0; }
             } else {
                 *key++ = (ka[j] + safer_ebox[(int)safer_ebox[(int)((18 * i + j + 1)&0xFF)]]) & 0xFF;
             }
         }
         if (strengthened) {
            k = 2 * i;
-           while (k >= (SAFER_BLOCK_LEN + 1)) { k -= SAFER_BLOCK_LEN + 1; }
+           while (k >= (LTC_SAFER_BLOCK_LEN + 1)) { k -= LTC_SAFER_BLOCK_LEN + 1; }
         }
-        for (j = 0; j < SAFER_BLOCK_LEN; j++) {
+        for (j = 0; j < LTC_SAFER_BLOCK_LEN; j++) {
             if (strengthened) {
                 *key++ = (kb[k]
                                 + safer_ebox[(int)safer_ebox[(int)((18 * i + j + 10)&0xFF)]]) & 0xFF;
-                if (++k == (SAFER_BLOCK_LEN + 1)) { k = 0; }
+                if (++k == (LTC_SAFER_BLOCK_LEN + 1)) { k = 0; }
             } else {
                 *key++ = (kb[j] + safer_ebox[(int)safer_ebox[(int)((18 * i + j + 10)&0xFF)]]) & 0xFF;
             }
@@ -173,7 +173,7 @@ static void Safer_Expand_Userkey(const unsigned char *userkey_1,
                                  safer_key_t key)
 {
    _Safer_Expand_Userkey(userkey_1, userkey_2, nof_rounds, strengthened, key);
-   burn_stack(sizeof(unsigned char) * (2 * (SAFER_BLOCK_LEN + 1)) + sizeof(unsigned int)*2);
+   burn_stack(sizeof(unsigned char) * (2 * (LTC_SAFER_BLOCK_LEN + 1)) + sizeof(unsigned int)*2);
 }
 #endif
 
@@ -182,7 +182,7 @@ int safer_k64_setup(const unsigned char *key, int keylen, int numrounds, symmetr
    LTC_ARGCHK(key != NULL);
    LTC_ARGCHK(skey != NULL);
 
-   if (numrounds != 0 && (numrounds < 6 || numrounds > SAFER_MAX_NOF_ROUNDS)) {
+   if (numrounds != 0 && (numrounds < 6 || numrounds > LTC_SAFER_MAX_NOF_ROUNDS)) {
       return CRYPT_INVALID_ROUNDS;
    }
 
@@ -190,7 +190,7 @@ int safer_k64_setup(const unsigned char *key, int keylen, int numrounds, symmetr
       return CRYPT_INVALID_KEYSIZE;
    }
 
-   Safer_Expand_Userkey(key, key, (unsigned int)(numrounds != 0 ?numrounds:SAFER_K64_DEFAULT_NOF_ROUNDS), 0, skey->safer.key);
+   Safer_Expand_Userkey(key, key, (unsigned int)(numrounds != 0 ?numrounds:LTC_SAFER_K64_DEFAULT_NOF_ROUNDS), 0, skey->safer.key);
    return CRYPT_OK;
 }
    
@@ -199,7 +199,7 @@ int safer_sk64_setup(const unsigned char *key, int keylen, int numrounds, symmet
    LTC_ARGCHK(key != NULL);
    LTC_ARGCHK(skey != NULL);
 
-   if (numrounds != 0 && (numrounds < 6 || numrounds > SAFER_MAX_NOF_ROUNDS)) {
+   if (numrounds != 0 && (numrounds < 6 || numrounds > LTC_SAFER_MAX_NOF_ROUNDS)) {
       return CRYPT_INVALID_ROUNDS;
    }
 
@@ -207,7 +207,7 @@ int safer_sk64_setup(const unsigned char *key, int keylen, int numrounds, symmet
       return CRYPT_INVALID_KEYSIZE;
    }
 
-   Safer_Expand_Userkey(key, key, (unsigned int)(numrounds != 0 ?numrounds:SAFER_SK64_DEFAULT_NOF_ROUNDS), 1, skey->safer.key);
+   Safer_Expand_Userkey(key, key, (unsigned int)(numrounds != 0 ?numrounds:LTC_SAFER_SK64_DEFAULT_NOF_ROUNDS), 1, skey->safer.key);
    return CRYPT_OK;
 }
 
@@ -216,7 +216,7 @@ int safer_k128_setup(const unsigned char *key, int keylen, int numrounds, symmet
    LTC_ARGCHK(key != NULL);
    LTC_ARGCHK(skey != NULL);
 
-   if (numrounds != 0 && (numrounds < 6 || numrounds > SAFER_MAX_NOF_ROUNDS)) {
+   if (numrounds != 0 && (numrounds < 6 || numrounds > LTC_SAFER_MAX_NOF_ROUNDS)) {
       return CRYPT_INVALID_ROUNDS;
    }
 
@@ -224,7 +224,7 @@ int safer_k128_setup(const unsigned char *key, int keylen, int numrounds, symmet
       return CRYPT_INVALID_KEYSIZE;
    }
 
-   Safer_Expand_Userkey(key, key+8, (unsigned int)(numrounds != 0 ?numrounds:SAFER_K128_DEFAULT_NOF_ROUNDS), 0, skey->safer.key);
+   Safer_Expand_Userkey(key, key+8, (unsigned int)(numrounds != 0 ?numrounds:LTC_SAFER_K128_DEFAULT_NOF_ROUNDS), 0, skey->safer.key);
    return CRYPT_OK;
 }
 
@@ -233,7 +233,7 @@ int safer_sk128_setup(const unsigned char *key, int keylen, int numrounds, symme
    LTC_ARGCHK(key != NULL);
    LTC_ARGCHK(skey != NULL);
 
-   if (numrounds != 0 && (numrounds < 6 || numrounds > SAFER_MAX_NOF_ROUNDS)) {
+   if (numrounds != 0 && (numrounds < 6 || numrounds > LTC_SAFER_MAX_NOF_ROUNDS)) {
       return CRYPT_INVALID_ROUNDS;
    }
 
@@ -241,7 +241,7 @@ int safer_sk128_setup(const unsigned char *key, int keylen, int numrounds, symme
       return CRYPT_INVALID_KEYSIZE;
    }
 
-   Safer_Expand_Userkey(key, key+8, (unsigned int)(numrounds != 0?numrounds:SAFER_SK128_DEFAULT_NOF_ROUNDS), 1, skey->safer.key);
+   Safer_Expand_Userkey(key, key+8, (unsigned int)(numrounds != 0?numrounds:LTC_SAFER_SK128_DEFAULT_NOF_ROUNDS), 1, skey->safer.key);
    return CRYPT_OK;
 }
 
@@ -265,7 +265,7 @@ int safer_ecb_encrypt(const unsigned char *block_in,
     key = skey->safer.key;
     a = block_in[0]; b = block_in[1]; c = block_in[2]; d = block_in[3];
     e = block_in[4]; f = block_in[5]; g = block_in[6]; h = block_in[7];
-    if (SAFER_MAX_NOF_ROUNDS < (round = *key)) round = SAFER_MAX_NOF_ROUNDS;
+    if (LTC_SAFER_MAX_NOF_ROUNDS < (round = *key)) round = LTC_SAFER_MAX_NOF_ROUNDS;
     while(round-- > 0)
     {
         a ^= *++key; b += *++key; c += *++key; d ^= *++key;
@@ -319,8 +319,8 @@ int safer_ecb_decrypt(const unsigned char *block_in,
     key = skey->safer.key;
     a = block_in[0]; b = block_in[1]; c = block_in[2]; d = block_in[3];
     e = block_in[4]; f = block_in[5]; g = block_in[6]; h = block_in[7];
-    if (SAFER_MAX_NOF_ROUNDS < (round = *key)) round = SAFER_MAX_NOF_ROUNDS;
-    key += SAFER_BLOCK_LEN * (1 + 2 * round);
+    if (LTC_SAFER_MAX_NOF_ROUNDS < (round = *key)) round = LTC_SAFER_MAX_NOF_ROUNDS;
+    key += LTC_SAFER_BLOCK_LEN * (1 + 2 * round);
     h ^= *key; g -= *--key; f -= *--key; e ^= *--key;
     d ^= *--key; c -= *--key; b -= *--key; a ^= *--key;
     while (round--)

+ 3 - 3
src/ciphers/safer/safer_tab.c

@@ -6,17 +6,17 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /**
   @file safer_tab.c
-  Tables for SAFER block ciphers
+  Tables for LTC_SAFER block ciphers
 */ 
  
 #include "tomcrypt.h"
 
-#if defined(SAFERP) || defined(SAFER)
+#if defined(LTC_SAFERP) || defined(LTC_SAFER)
 
 /* This is the box defined by ebox[x] = 45^x mod 257.  
  * Its assumed that the value "256" corresponds to zero. */

+ 8 - 8
src/ciphers/safer/saferp.c

@@ -6,16 +6,16 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /** 
    @file saferp.c
-   SAFER+ Implementation by Tom St Denis 
+   LTC_SAFER+ Implementation by Tom St Denis 
 */
 #include "tomcrypt.h"
 
-#ifdef SAFERP
+#ifdef LTC_SAFERP
 
 const struct ltc_cipher_descriptor saferp_desc =
 {
@@ -37,7 +37,7 @@ const struct ltc_cipher_descriptor saferp_desc =
  * key addition, substitution, key addition.  The safer_ebox and safer_lbox 
  * are the exponentiation box and logarithm boxes respectively.  
  * The value of 'i' is the current round number which allows this 
- * function to be unrolled massively.  Most of SAFER+'s speed 
+ * function to be unrolled massively.  Most of LTC_SAFER+'s speed 
  * comes from not having to compute indirect accesses into the 
  * array of 16 bytes b[0..15] which is the block of data
 */
@@ -206,7 +206,7 @@ static const unsigned char safer_bias[33][16] = {
 {  62, 220, 134, 119, 215, 166,  17, 251, 244, 186, 146, 145, 100, 131, 241,  51}};
 
  /**
-    Initialize the SAFER+ block cipher
+    Initialize the LTC_SAFER+ block cipher
     @param key The symmetric key you wish to pass
     @param keylen The key length in bytes
     @param num_rounds The number of rounds desired (0 for default)
@@ -325,7 +325,7 @@ int saferp_setup(const unsigned char *key, int keylen, int num_rounds, symmetric
 }
 
 /**
-  Encrypts a block of text with SAFER+
+  Encrypts a block of text with LTC_SAFER+
   @param pt The input plaintext (16 bytes)
   @param ct The output ciphertext (16 bytes)
   @param skey The key as scheduled
@@ -389,7 +389,7 @@ int saferp_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key
 }
 
 /**
-  Decrypts a block of text with SAFER+
+  Decrypts a block of text with LTC_SAFER+
   @param ct The input ciphertext (16 bytes)
   @param pt The output plaintext (16 bytes)
   @param skey The key as scheduled 
@@ -453,7 +453,7 @@ int saferp_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key
 }
 
 /**
-  Performs a self-test of the SAFER+ block cipher
+  Performs a self-test of the LTC_SAFER+ block cipher
   @return CRYPT_OK if functional, CRYPT_NOP if self-test has been disabled
 */
 int saferp_test(void)

+ 2 - 2
src/ciphers/skipjack.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /**
@@ -15,7 +15,7 @@
 */
 #include "tomcrypt.h"
 
-#ifdef SKIPJACK
+#ifdef LTC_SKIPJACK
 
 const struct ltc_cipher_descriptor skipjack_desc =
 {

+ 22 - 22
src/ciphers/twofish/twofish.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
  /** 
@@ -15,12 +15,12 @@
  */
 #include "tomcrypt.h"
 
-#ifdef TWOFISH
+#ifdef LTC_TWOFISH
 
-/* first TWOFISH_ALL_TABLES must ensure TWOFISH_TABLES is defined */
-#ifdef TWOFISH_ALL_TABLES
-#ifndef TWOFISH_TABLES
-#define TWOFISH_TABLES
+/* first LTC_TWOFISH_ALL_TABLES must ensure LTC_TWOFISH_TABLES is defined */
+#ifdef LTC_TWOFISH_ALL_TABLES
+#ifndef LTC_TWOFISH_TABLES
+#define LTC_TWOFISH_TABLES
 #endif
 #endif
 
@@ -66,7 +66,7 @@ static const unsigned char qord[4][5] = {
    { 1, 0, 1, 1, 0 }
 };
 
-#ifdef TWOFISH_TABLES
+#ifdef LTC_TWOFISH_TABLES
 
 #include "twofish_tab.c"
 
@@ -140,7 +140,7 @@ static ulong32 sbox(int i, ulong32 x)
 }
 #endif /* LTC_CLEAN_STACK */
 
-#endif /* TWOFISH_TABLES */
+#endif /* LTC_TWOFISH_TABLES */
 
 /* computes ab mod p */
 static ulong32 gf_mult(ulong32 a, ulong32 b, ulong32 p)
@@ -165,7 +165,7 @@ static ulong32 gf_mult(ulong32 a, ulong32 b, ulong32 p)
 }
 
 /* computes [y0 y1 y2 y3] = MDS . [x0] */
-#ifndef TWOFISH_TABLES
+#ifndef LTC_TWOFISH_TABLES
 static ulong32 mds_column_mult(unsigned char in, int col)
 {
    ulong32 x01, x5B, xEF;
@@ -200,11 +200,11 @@ static ulong32 mds_column_mult(unsigned char in, int col)
    return 0;
 }
 
-#else /* !TWOFISH_TABLES */
+#else /* !LTC_TWOFISH_TABLES */
 
 #define mds_column_mult(x, i) mds_tab[i][x]
 
-#endif /* TWOFISH_TABLES */
+#endif /* LTC_TWOFISH_TABLES */
 
 /* Computes [y0 y1 y2 y3] = MDS . [x0 x1 x2 x3] */
 static void mds_mult(const unsigned char *in, unsigned char *out)
@@ -217,7 +217,7 @@ static void mds_mult(const unsigned char *in, unsigned char *out)
   STORE32L(tmp, out);
 }
 
-#ifdef TWOFISH_ALL_TABLES
+#ifdef LTC_TWOFISH_ALL_TABLES
 /* computes [y0 y1 y2 y3] = RS . [x0 x1 x2 x3 x4 x5 x6 x7] */
 static void rs_mult(const unsigned char *in, unsigned char *out)
 {
@@ -227,7 +227,7 @@ static void rs_mult(const unsigned char *in, unsigned char *out)
    STORE32L(tmp, out);
 }
 
-#else /* !TWOFISH_ALL_TABLES */
+#else /* !LTC_TWOFISH_ALL_TABLES */
 
 /* computes [y0 y1 y2 y3] = RS . [x0 x1 x2 x3 x4 x5 x6 x7] */
 static void rs_mult(const unsigned char *in, unsigned char *out)
@@ -271,7 +271,7 @@ static void h_func(const unsigned char *in, unsigned char *out, unsigned char *M
   mds_mult(y, out);
 }
 
-#ifndef TWOFISH_SMALL
+#ifndef LTC_TWOFISH_SMALL
 
 /* for GCC we don't use pointer aliases */
 #if defined(__GNUC__)
@@ -330,7 +330,7 @@ static ulong32 g_func(ulong32 x, symmetric_key *key)
 }
 #endif /* LTC_CLEAN_STACK */
 
-#endif /* TWOFISH_SMALL */
+#endif /* LTC_TWOFISH_SMALL */
 
  /**
     Initialize the Twofish block cipher
@@ -346,7 +346,7 @@ static int _twofish_setup(const unsigned char *key, int keylen, int num_rounds,
 int twofish_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey)
 #endif
 {
-#ifndef TWOFISH_SMALL
+#ifndef LTC_TWOFISH_SMALL
    unsigned char S[4*4], tmpx0, tmpx1;
 #endif
    int k, x, y;
@@ -374,7 +374,7 @@ int twofish_setup(const unsigned char *key, int keylen, int num_rounds, symmetri
    }
 
    /* create the S[..] words */
-#ifndef TWOFISH_SMALL
+#ifndef LTC_TWOFISH_SMALL
    for (x = 0; x < k; x++) {
        rs_mult(M+(x*8), S+(x*4));
    }
@@ -408,7 +408,7 @@ int twofish_setup(const unsigned char *key, int keylen, int num_rounds, symmetri
        skey->twofish.K[x+x+1] = ROLc(B + B + A, 9);
    }
 
-#ifndef TWOFISH_SMALL
+#ifndef LTC_TWOFISH_SMALL
    /* make the sboxes (large ram variant) */
    if (k == 2) {
         for (x = 0; x < 256; x++) {
@@ -475,7 +475,7 @@ int twofish_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_ke
 {
     ulong32 a,b,c,d,ta,tb,tc,td,t1,t2, *k;
     int r;
-#if !defined(TWOFISH_SMALL) && !defined(__GNUC__)
+#if !defined(LTC_TWOFISH_SMALL) && !defined(__GNUC__)
     ulong32 *S1, *S2, *S3, *S4;
 #endif    
 
@@ -483,7 +483,7 @@ int twofish_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_ke
     LTC_ARGCHK(ct   != NULL);
     LTC_ARGCHK(skey != NULL);
     
-#if !defined(TWOFISH_SMALL) && !defined(__GNUC__)
+#if !defined(LTC_TWOFISH_SMALL) && !defined(__GNUC__)
     S1 = skey->twofish.S[0];
     S2 = skey->twofish.S[1];
     S3 = skey->twofish.S[2];
@@ -548,7 +548,7 @@ int twofish_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_ke
 {
     ulong32 a,b,c,d,ta,tb,tc,td,t1,t2, *k;
     int r;
-#if !defined(TWOFISH_SMALL) && !defined(__GNUC__)
+#if !defined(LTC_TWOFISH_SMALL) && !defined(__GNUC__)
     ulong32 *S1, *S2, *S3, *S4;
 #endif    
 
@@ -556,7 +556,7 @@ int twofish_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_ke
     LTC_ARGCHK(ct   != NULL);
     LTC_ARGCHK(skey != NULL);
     
-#if !defined(TWOFISH_SMALL) && !defined(__GNUC__)
+#if !defined(LTC_TWOFISH_SMALL) && !defined(__GNUC__)
     S1 = skey->twofish.S[0];
     S2 = skey->twofish.S[1];
     S3 = skey->twofish.S[2];

+ 4 - 4
src/ciphers/twofish/twofish_tab.c

@@ -6,14 +6,14 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
  /**
     @file twofish_tab.c
     Twofish tables, Tom St Denis
  */
-#ifdef TWOFISH_TABLES
+#ifdef LTC_TWOFISH_TABLES
 
 /* pre generated 8x8 tables from the four 4x4s */
 static const unsigned char SBOX[2][256] = {
@@ -212,7 +212,7 @@ static const ulong32 mds_tab[4][256] = {
 0xc6baf8c6UL, 0x9d55f99dUL, 0x700dfa70UL, 0x2be2fb2bUL, 0xc3bdfcc3UL, 0x9852fd98UL, 0x750afe75UL, 0x2ee5ff2eUL
 }};
 
-#ifdef TWOFISH_ALL_TABLES
+#ifdef LTC_TWOFISH_ALL_TABLES
 
 /* the 4x8 RS transform */
 static const ulong32 rs_tab0[256] = {
@@ -487,7 +487,7 @@ static const ulong32 rs_tab7[256] = {
 0x5d8218b2LU, 0x5e9bfd2cLU, 0x5bb09fc3LU, 0x58a97a5dLU, 0x51e65b50LU, 0x52ffbeceLU, 0x57d4dc21LU, 0x54cd39bfLU, 
 0x454a9e3bLU, 0x46537ba5LU, 0x4378194aLU, 0x4061fcd4LU, 0x492eddd9LU, 0x4a373847LU, 0x4f1c5aa8LU, 0x4c05bf36LU };
 
-#endif /* TWOFISH_ALL_TABLES */
+#endif /* LTC_TWOFISH_ALL_TABLES */
 
 #endif
 

+ 6 - 6
src/ciphers/xtea.c

@@ -6,16 +6,16 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /**
   @file xtea.c
-  Implementation of XTEA, Tom St Denis
+  Implementation of LTC_XTEA, Tom St Denis
 */
 #include "tomcrypt.h"
 
-#ifdef XTEA
+#ifdef LTC_XTEA
 
 const struct ltc_cipher_descriptor xtea_desc =
 {
@@ -67,7 +67,7 @@ int xtea_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_k
 }
 
 /**
-  Encrypts a block of text with XTEA
+  Encrypts a block of text with LTC_XTEA
   @param pt The input plaintext (8 bytes)
   @param ct The output ciphertext (8 bytes)
   @param skey The key as scheduled
@@ -103,7 +103,7 @@ int xtea_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *
 }
 
 /**
-  Decrypts a block of text with XTEA
+  Decrypts a block of text with LTC_XTEA
   @param ct The input ciphertext (8 bytes)
   @param pt The output plaintext (8 bytes)
   @param skey The key as scheduled 
@@ -139,7 +139,7 @@ int xtea_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *
 }
 
 /**
-  Performs a self-test of the XTEA block cipher
+  Performs a self-test of the LTC_XTEA block cipher
   @return CRYPT_OK if functional, CRYPT_NOP if self-test has been disabled
 */
 int xtea_test(void)

+ 2 - 2
src/encauth/ccm/ccm_memory.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 #include "tomcrypt.h"
 
@@ -15,7 +15,7 @@
   CCM support, process a block of memory, Tom St Denis
 */
 
-#ifdef CCM_MODE
+#ifdef LTC_CCM_MODE
 
 /**
    CCM encrypt/decrypt and produce an authentication tag

+ 2 - 2
src/encauth/ccm/ccm_test.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 #include "tomcrypt.h"
 
@@ -15,7 +15,7 @@
   CCM support, process a block of memory, Tom St Denis
 */
 
-#ifdef CCM_MODE
+#ifdef LTC_CCM_MODE
 
 int ccm_test(void)
 {

+ 2 - 2
src/encauth/eax/eax_addheader.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 /** 
     @file eax_addheader.c
@@ -14,7 +14,7 @@
 */
 #include "tomcrypt.h"
 
-#ifdef EAX_MODE
+#ifdef LTC_EAX_MODE
 
 /** 
     add header (metadata) to the stream 

+ 2 - 2
src/encauth/eax/eax_decrypt.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /** 
@@ -15,7 +15,7 @@
 */
 #include "tomcrypt.h"
 
-#ifdef EAX_MODE
+#ifdef LTC_EAX_MODE
 
 /**  
    Decrypt data with the EAX protocol

+ 2 - 2
src/encauth/eax/eax_decrypt_verify_memory.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /**
@@ -15,7 +15,7 @@
 */
 #include "tomcrypt.h"
 
-#ifdef EAX_MODE
+#ifdef LTC_EAX_MODE
 
 /**
    Decrypt a block of memory and verify the provided MAC tag with EAX

+ 2 - 2
src/encauth/eax/eax_done.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /**
@@ -15,7 +15,7 @@
 */
 #include "tomcrypt.h"
 
-#ifdef EAX_MODE
+#ifdef LTC_EAX_MODE
 
 /**
    Terminate an EAX session and get the tag.

+ 2 - 2
src/encauth/eax/eax_encrypt.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /**
@@ -15,7 +15,7 @@
 */
 #include "tomcrypt.h"
 
-#ifdef EAX_MODE
+#ifdef LTC_EAX_MODE
 
 /**
    Encrypt with EAX a block of data.

+ 2 - 2
src/encauth/eax/eax_encrypt_authenticate_memory.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /**
@@ -15,7 +15,7 @@
 */
 #include "tomcrypt.h"
 
-#ifdef EAX_MODE
+#ifdef LTC_EAX_MODE
 
 /**
    EAX encrypt and produce an authentication tag

+ 5 - 5
src/encauth/eax/eax_init.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /** 
@@ -15,7 +15,7 @@
 */
 #include "tomcrypt.h"
 
-#ifdef EAX_MODE
+#ifdef LTC_EAX_MODE
 
 /** 
    Initialized an EAX state
@@ -66,7 +66,7 @@ int eax_init(eax_state *eax, int cipher,
       return CRYPT_MEM;
    }
 
-   /* N = OMAC_0K(nonce) */
+   /* N = LTC_OMAC_0K(nonce) */
    zeromem(buf, MAXBLOCKSIZE);
    if ((err = omac_init(omac, cipher, key, keylen)) != CRYPT_OK) {
       goto LBL_ERR; 
@@ -86,7 +86,7 @@ int eax_init(eax_state *eax, int cipher,
       goto LBL_ERR; 
    }
 
-   /* H = OMAC_1K(header) */
+   /* H = LTC_OMAC_1K(header) */
    zeromem(buf, MAXBLOCKSIZE);
    buf[blklen - 1] = 1;
 
@@ -112,7 +112,7 @@ int eax_init(eax_state *eax, int cipher,
       goto LBL_ERR; 
    }
 
-   /* setup the OMAC for the ciphertext */
+   /* setup the LTC_OMAC for the ciphertext */
    if ((err = omac_init(&eax->ctomac, cipher, key, keylen)) != CRYPT_OK) { 
       goto LBL_ERR; 
    }

+ 3 - 3
src/encauth/eax/eax_test.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /** 
@@ -15,7 +15,7 @@
 */
 #include "tomcrypt.h"
 
-#ifdef EAX_MODE
+#ifdef LTC_EAX_MODE
 
 /**
    Test the EAX implementation
@@ -275,7 +275,7 @@ int eax_test(void)
 #endif /* LTC_TEST */
 }
 
-#endif /* EAX_MODE */
+#endif /* LTC_EAX_MODE */
 
 /* $Source$ */
 /* $Revision$ */

+ 5 - 5
src/encauth/gcm/gcm_add_aad.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /**
@@ -15,7 +15,7 @@
 */
 #include "tomcrypt.h"
 
-#ifdef GCM_MODE
+#ifdef LTC_GCM_MODE
 
 /**
   Add AAD to the GCM state
@@ -47,7 +47,7 @@ int gcm_add_aad(gcm_state *gcm,
    }
 
    /* in IV mode? */
-   if (gcm->mode == GCM_MODE_IV) {
+   if (gcm->mode == LTC_GCM_MODE_IV) {
       /* let's process the IV */
       if (gcm->ivmode || gcm->buflen != 12) {
          for (x = 0; x < (unsigned long)gcm->buflen; x++) {
@@ -80,10 +80,10 @@ int gcm_add_aad(gcm_state *gcm,
       zeromem(gcm->buf, 16);
       gcm->buflen = 0;
       gcm->totlen = 0;
-      gcm->mode   = GCM_MODE_AAD;
+      gcm->mode   = LTC_GCM_MODE_AAD;
    }
 
-   if (gcm->mode != GCM_MODE_AAD || gcm->buflen >= 16) {
+   if (gcm->mode != LTC_GCM_MODE_AAD || gcm->buflen >= 16) {
       return CRYPT_INVALID_ARG;
    }
 

+ 3 - 3
src/encauth/gcm/gcm_add_iv.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /**
@@ -15,7 +15,7 @@
 */
 #include "tomcrypt.h"
 
-#ifdef GCM_MODE
+#ifdef LTC_GCM_MODE
 
 /**
   Add IV data to the GCM state
@@ -36,7 +36,7 @@ int gcm_add_iv(gcm_state *gcm,
    }
 
    /* must be in IV mode */
-   if (gcm->mode != GCM_MODE_IV) {
+   if (gcm->mode != LTC_GCM_MODE_IV) {
       return CRYPT_INVALID_ARG;
    }
  

+ 3 - 3
src/encauth/gcm/gcm_done.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /**
@@ -15,7 +15,7 @@
 */
 #include "tomcrypt.h"
 
-#ifdef GCM_MODE
+#ifdef LTC_GCM_MODE
 
 /**
   Terminate a GCM stream
@@ -43,7 +43,7 @@ int gcm_done(gcm_state *gcm,
    }
 
 
-   if (gcm->mode != GCM_MODE_TEXT) {
+   if (gcm->mode != LTC_GCM_MODE_TEXT) {
       return CRYPT_INVALID_ARG;
    }
 

+ 3 - 3
src/encauth/gcm/gcm_gf_mult.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /**
@@ -15,7 +15,7 @@
 */
 #include "tomcrypt.h"
 
-#if defined(GCM_TABLES) || defined(LRW_TABLES) || ((defined(GCM_MODE) || defined(GCM_MODE)) && defined(LTC_FAST))
+#if defined(LTC_GCM_TABLES) || defined(LRW_TABLES) || ((defined(LTC_GCM_MODE) || defined(LTC_GCM_MODE)) && defined(LTC_FAST))
 
 /* this is x*2^128 mod p(x) ... the results are 16 bytes each stored in a packed format.  Since only the 
  * lower 16 bits are not zero'ed I removed the upper 14 bytes */
@@ -56,7 +56,7 @@ const unsigned char gcm_shift_table[256*2] = {
 #endif
 
 
-#if defined(GCM_MODE) || defined(LRW_MODE)
+#if defined(LTC_GCM_MODE) || defined(LRW_MODE)
 
 #ifndef LTC_FAST
 /* right shift */

+ 5 - 5
src/encauth/gcm/gcm_init.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /**
@@ -15,7 +15,7 @@
 */
 #include "tomcrypt.h"
 
-#ifdef GCM_MODE
+#ifdef LTC_GCM_MODE
 
 /**
   Initialize a GCM state
@@ -30,7 +30,7 @@ int gcm_init(gcm_state *gcm, int cipher,
 {
    int           err;
    unsigned char B[16];
-#ifdef GCM_TABLES
+#ifdef LTC_GCM_TABLES
    int           x, y, z, t;
 #endif
 
@@ -66,13 +66,13 @@ int gcm_init(gcm_state *gcm, int cipher,
    zeromem(gcm->buf, sizeof(gcm->buf));
    zeromem(gcm->X,   sizeof(gcm->X));
    gcm->cipher   = cipher;
-   gcm->mode     = GCM_MODE_IV;
+   gcm->mode     = LTC_GCM_MODE_IV;
    gcm->ivmode   = 0;
    gcm->buflen   = 0;
    gcm->totlen   = 0;
    gcm->pttotlen = 0;
 
-#ifdef GCM_TABLES
+#ifdef LTC_GCM_TABLES
    /* setup tables */
 
    /* generate the first table as it has no shifting (from which we make the other tables) */

+ 4 - 4
src/encauth/gcm/gcm_memory.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /**
@@ -15,7 +15,7 @@
 */
 #include "tomcrypt.h"
 
-#ifdef GCM_MODE
+#ifdef LTC_GCM_MODE
 
 /**
   Process an entire GCM packet in one call.
@@ -65,7 +65,7 @@ int gcm_memory(      int           cipher,
 
 
 
-#ifndef GCM_TABLES_SSE2
+#ifndef LTC_GCM_TABLES_SSE2
     orig = gcm = XMALLOC(sizeof(*gcm));
 #else
     orig = gcm = XMALLOC(sizeof(*gcm) + 16);
@@ -78,7 +78,7 @@ int gcm_memory(      int           cipher,
     * note that we only modify gcm and keep orig intact.  This code is not portable
     * but again it's only for SSE2 anyways, so who cares?
     */
-#ifdef GCM_TABLES_SSE2
+#ifdef LTC_GCM_TABLES_SSE2
    if ((unsigned long)gcm & 15) {
       gcm = (gcm_state *)((unsigned long)gcm + (16 - ((unsigned long)gcm & 15)));
    }

+ 5 - 5
src/encauth/gcm/gcm_mult_h.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /**
@@ -15,7 +15,7 @@
 */
 #include "tomcrypt.h"
 
-#if defined(GCM_MODE)
+#if defined(LTC_GCM_MODE)
 /**
   GCM multiply by H
   @param gcm   The GCM state which holds the H value
@@ -24,9 +24,9 @@
 void gcm_mult_h(gcm_state *gcm, unsigned char *I)
 {
    unsigned char T[16];
-#ifdef GCM_TABLES
+#ifdef LTC_GCM_TABLES
    int x, y;
-#ifdef GCM_TABLES_SSE2
+#ifdef LTC_GCM_TABLES_SSE2
    asm("movdqa (%0),%%xmm0"::"r"(&gcm->PC[0][I[0]][0]));
    for (x = 1; x < 16; x++) {
       asm("pxor (%0),%%xmm0"::"r"(&gcm->PC[x][I[x]][0]));
@@ -45,7 +45,7 @@ void gcm_mult_h(gcm_state *gcm, unsigned char *I)
        }
 #endif /* LTC_FAST */
    }
-#endif /* GCM_TABLES_SSE2 */
+#endif /* LTC_GCM_TABLES_SSE2 */
 #else     
    gcm_gf_mult(gcm->H, I, T); 
 #endif

+ 5 - 5
src/encauth/gcm/gcm_process.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /**
@@ -15,7 +15,7 @@
 */
 #include "tomcrypt.h"
 
-#ifdef GCM_MODE
+#ifdef LTC_GCM_MODE
 
 /** 
   Process plaintext/ciphertext through GCM
@@ -50,7 +50,7 @@ int gcm_process(gcm_state *gcm,
    }
 
    /* in AAD mode? */
-   if (gcm->mode == GCM_MODE_AAD) {
+   if (gcm->mode == LTC_GCM_MODE_AAD) {
       /* let's process the AAD */
       if (gcm->buflen) {
          gcm->totlen += gcm->buflen * CONST64(8);
@@ -67,10 +67,10 @@ int gcm_process(gcm_state *gcm,
       }
 
       gcm->buflen = 0;
-      gcm->mode   = GCM_MODE_TEXT;
+      gcm->mode   = LTC_GCM_MODE_TEXT;
    }
 
-   if (gcm->mode != GCM_MODE_TEXT) {
+   if (gcm->mode != LTC_GCM_MODE_TEXT) {
       return CRYPT_INVALID_ARG;
    }
 

+ 3 - 3
src/encauth/gcm/gcm_reset.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /**
@@ -15,7 +15,7 @@
 */
 #include "tomcrypt.h"
 
-#ifdef GCM_MODE
+#ifdef LTC_GCM_MODE
 
 /**
   Reset a GCM state to as if you just called gcm_init().  This saves the initialization time.
@@ -28,7 +28,7 @@ int gcm_reset(gcm_state *gcm)
 
    zeromem(gcm->buf, sizeof(gcm->buf));
    zeromem(gcm->X,   sizeof(gcm->X));
-   gcm->mode     = GCM_MODE_IV;
+   gcm->mode     = LTC_GCM_MODE_IV;
    gcm->ivmode   = 0;
    gcm->buflen   = 0;
    gcm->totlen   = 0;

+ 2 - 2
src/encauth/gcm/gcm_test.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /**
@@ -15,7 +15,7 @@
 */
 #include "tomcrypt.h"
 
-#ifdef GCM_MODE
+#ifdef LTC_GCM_MODE
 
 /** 
   Test the GCM code

+ 2 - 2
src/encauth/ocb/ocb_decrypt.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /**
@@ -15,7 +15,7 @@
 */
 #include "tomcrypt.h"
 
-#ifdef OCB_MODE
+#ifdef LTC_OCB_MODE
 
 /**
   Decrypt a block with OCB.

+ 2 - 2
src/encauth/ocb/ocb_decrypt_verify_memory.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /** 
@@ -15,7 +15,7 @@
 */
 #include "tomcrypt.h"
 
-#ifdef OCB_MODE
+#ifdef LTC_OCB_MODE
 
 /**
    Decrypt and compare the tag with OCB.

+ 2 - 2
src/encauth/ocb/ocb_done_decrypt.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /** 
@@ -15,7 +15,7 @@
 */
 #include "tomcrypt.h"
 
-#ifdef OCB_MODE
+#ifdef LTC_OCB_MODE
 
 /**
    Terminate a decrypting OCB state

+ 2 - 2
src/encauth/ocb/ocb_done_encrypt.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /** 
@@ -15,7 +15,7 @@
 */
 #include "tomcrypt.h"
 
-#ifdef OCB_MODE
+#ifdef LTC_OCB_MODE
 
 /** 
    Terminate an encryption OCB state

+ 2 - 2
src/encauth/ocb/ocb_encrypt.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /** 
@@ -15,7 +15,7 @@
 */
 #include "tomcrypt.h"
 
-#ifdef OCB_MODE
+#ifdef LTC_OCB_MODE
 
 /**
    Encrypt a block of data with OCB.

+ 2 - 2
src/encauth/ocb/ocb_encrypt_authenticate_memory.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /** 
@@ -15,7 +15,7 @@
 */
 #include "tomcrypt.h"
 
-#ifdef OCB_MODE
+#ifdef LTC_OCB_MODE
 
 /**
    Encrypt and generate an authentication code for a buffer of memory

+ 2 - 2
src/encauth/ocb/ocb_init.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /**
@@ -15,7 +15,7 @@
 */
 #include "tomcrypt.h"
 
-#ifdef OCB_MODE
+#ifdef LTC_OCB_MODE
 
 static const struct {
     int           len;

+ 2 - 2
src/encauth/ocb/ocb_ntz.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /**
@@ -16,7 +16,7 @@
 
 #include "tomcrypt.h"
 
-#ifdef OCB_MODE
+#ifdef LTC_OCB_MODE
 
 /**
    Returns the number of leading zero bits [from lsb up]

+ 2 - 2
src/encauth/ocb/ocb_shift_xor.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /** 
@@ -15,7 +15,7 @@
 */
 #include "tomcrypt.h"
 
-#ifdef OCB_MODE
+#ifdef LTC_OCB_MODE
 
 /**
    Compute the shift/xor for OCB (internal function)

+ 3 - 3
src/encauth/ocb/ocb_test.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /** 
@@ -15,7 +15,7 @@
 */
 #include "tomcrypt.h"
 
-#ifdef OCB_MODE
+#ifdef LTC_OCB_MODE
 
 /** 
   Test the OCB protocol
@@ -222,7 +222,7 @@ int ocb_test(void)
 #endif /* LTC_TEST */
 }
 
-#endif /* OCB_MODE */
+#endif /* LTC_OCB_MODE */
 
 
 /* some comments

+ 2 - 2
src/encauth/ocb/s_ocb_done.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /** 
@@ -15,7 +15,7 @@
 */
 #include "tomcrypt.h"
 
-#ifdef OCB_MODE
+#ifdef LTC_OCB_MODE
 
 /* Since the last block is encrypted in CTR mode the same code can
  * be used to finish a decrypt or encrypt stream.  The only difference

+ 2 - 2
src/hashes/chc/chc.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 #include "tomcrypt.h"
@@ -16,7 +16,7 @@
   CHC support. (Tom St Denis)
 */
 
-#ifdef CHC_HASH
+#ifdef LTC_CHC_HASH
 
 #define UNDEFED_HASH  -17
 

+ 1 - 1
src/hashes/helper/hash_file.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 #include "tomcrypt.h"
 

+ 1 - 1
src/hashes/helper/hash_filehandle.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 #include "tomcrypt.h"
 

+ 1 - 1
src/hashes/helper/hash_memory.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 #include "tomcrypt.h"
 

+ 1 - 1
src/hashes/helper/hash_memory_multi.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 #include "tomcrypt.h"
 #include <stdarg.h>

+ 4 - 4
src/hashes/md2.c

@@ -6,16 +6,16 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 #include "tomcrypt.h"
 
 /**
    @param md2.c
-   MD2 (RFC 1319) hash function implementation by Tom St Denis 
+   LTC_MD2 (RFC 1319) hash function implementation by Tom St Denis 
 */
 
-#ifdef MD2
+#ifdef LTC_MD2
 
 const struct ltc_hash_descriptor md2_desc =
 {
@@ -102,7 +102,7 @@ int md2_init(hash_state *md)
 {
    LTC_ARGCHK(md != NULL);
 
-   /* MD2 uses a zero'ed state... */
+   /* LTC_MD2 uses a zero'ed state... */
    zeromem(md->md2.X, sizeof(md->md2.X));
    zeromem(md->md2.chksum, sizeof(md->md2.chksum));
    zeromem(md->md2.buf, sizeof(md->md2.buf));

+ 3 - 3
src/hashes/md4.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 #include "tomcrypt.h"
 
@@ -15,7 +15,7 @@
    Submitted by Dobes Vandermeer  ([email protected]) 
 */
 
-#ifdef MD4
+#ifdef LTC_MD4
 
 const struct ltc_hash_descriptor md4_desc =
 {
@@ -48,7 +48,7 @@ const struct ltc_hash_descriptor md4_desc =
 #define S33 11
 #define S34 15
 
-/* F, G and H are basic MD4 functions. */
+/* F, G and H are basic LTC_MD4 functions. */
 #define F(x, y, z) (z ^ (x & (y ^ z)))
 #define G(x, y, z) ((x & y) | (z & (x | y)))
 #define H(x, y, z) ((x) ^ (y) ^ (z))

+ 3 - 3
src/hashes/md5.c

@@ -6,17 +6,17 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 #include "tomcrypt.h"
 
 
 /**
   @file md5.c
-  MD5 hash function by Tom St Denis 
+  LTC_MD5 hash function by Tom St Denis 
 */
 
-#ifdef MD5
+#ifdef LTC_MD5
 
 const struct ltc_hash_descriptor md5_desc =
 {

+ 3 - 3
src/hashes/rmd128.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 #include "tomcrypt.h"
 
@@ -15,13 +15,13 @@
    RMD128 Hash function
 */   
 
-/* Implementation of RIPEMD-128 based on the source by Antoon Bosselaers, ESAT-COSIC
+/* Implementation of LTC_RIPEMD-128 based on the source by Antoon Bosselaers, ESAT-COSIC
  *
  * This source has been radically overhauled to be portable and work within
  * the LibTomCrypt API by Tom St Denis
  */
 
-#ifdef RIPEMD128
+#ifdef LTC_RIPEMD128
 
 const struct ltc_hash_descriptor rmd128_desc =
 {

+ 3 - 3
src/hashes/rmd160.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 #include "tomcrypt.h"
 
@@ -15,13 +15,13 @@
    RMD160 hash function
 */   
 
-/* Implementation of RIPEMD-160 based on the source by Antoon Bosselaers, ESAT-COSIC
+/* Implementation of LTC_RIPEMD-160 based on the source by Antoon Bosselaers, ESAT-COSIC
  *
  * This source has been radically overhauled to be portable and work within
  * the LibTomCrypt API by Tom St Denis
  */
 
-#ifdef RIPEMD160
+#ifdef LTC_RIPEMD160
 
 const struct ltc_hash_descriptor rmd160_desc =
 {

+ 4 - 4
src/hashes/rmd256.c

@@ -6,22 +6,22 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 #include "tomcrypt.h"
 
 /**
    @param rmd256.c
-   RMD256 Hash function
+   RLTC_MD256 Hash function
 */
 
-#ifdef RIPEMD256
+#ifdef LTC_RIPEMD256
 
 const struct ltc_hash_descriptor rmd256_desc =
 {
     "rmd256",
     8,
-    16,
+    32,
     64,
 
     /* OID */

+ 3 - 3
src/hashes/rmd320.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 #include "tomcrypt.h"
 
@@ -15,13 +15,13 @@
    RMD320 hash function
 */
 
-#ifdef RIPEMD320
+#ifdef LTC_RIPEMD320
 
 const struct ltc_hash_descriptor rmd320_desc =
 {
     "rmd320",
     9,
-    20,
+    40,
     64,
 
     /* OID */

+ 3 - 3
src/hashes/sha1.c

@@ -6,17 +6,17 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 #include "tomcrypt.h"
 
 /**
   @file sha1.c
-  SHA1 code by Tom St Denis 
+  LTC_SHA1 code by Tom St Denis 
 */
 
 
-#ifdef SHA1
+#ifdef LTC_SHA1
 
 const struct ltc_hash_descriptor sha1_desc =
 {

+ 2 - 2
src/hashes/sha2/sha224.c

@@ -6,11 +6,11 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 /**
    @param sha224.c
-   SHA-224 new NIST standard based off of SHA-256 truncated to 224 bits (Tom St Denis)
+   LTC_SHA-224 new NIST standard based off of LTC_SHA-256 truncated to 224 bits (Tom St Denis)
 */
 
 const struct ltc_hash_descriptor sha224_desc =

+ 4 - 4
src/hashes/sha2/sha256.c

@@ -6,16 +6,16 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 #include "tomcrypt.h"
 
 /**
   @file sha256.c
-  SHA256 by Tom St Denis 
+  LTC_SHA256 by Tom St Denis 
 */
 
-#ifdef SHA256 
+#ifdef LTC_SHA256 
 
 const struct ltc_hash_descriptor sha256_desc =
 {
@@ -327,7 +327,7 @@ int  sha256_test(void)
  #endif
 }
 
-#ifdef SHA224
+#ifdef LTC_SHA224
 #include "sha224.c"
 #endif
 

+ 2 - 2
src/hashes/sha2/sha384.c

@@ -6,11 +6,11 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 /** 
    @param sha384.c
-   SHA384 hash included in sha512.c, Tom St Denis
+   LTC_SHA384 hash included in sha512.c, Tom St Denis
 */
 
 const struct ltc_hash_descriptor sha384_desc =

+ 4 - 4
src/hashes/sha2/sha512.c

@@ -6,16 +6,16 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 #include "tomcrypt.h"
 
 /**
    @param sha512.c
-   SHA512 by Tom St Denis 
+   LTC_SHA512 by Tom St Denis 
 */
 
-#ifdef SHA512
+#ifdef LTC_SHA512
 
 const struct ltc_hash_descriptor sha512_desc =
 {
@@ -305,7 +305,7 @@ int  sha512_test(void)
   #endif
 }
 
-#ifdef SHA384
+#ifdef LTC_SHA384
    #include "sha384.c"
 #endif
 

+ 2 - 2
src/hashes/tiger.c

@@ -6,7 +6,7 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 #include "tomcrypt.h"
@@ -16,7 +16,7 @@
    Tiger hash function, Tom St Denis
 */
 
-#ifdef TIGER
+#ifdef LTC_TIGER
 
 const struct ltc_hash_descriptor tiger_desc =
 {

+ 3 - 3
src/hashes/whirl/whirl.c

@@ -6,17 +6,17 @@
  * The library is free for all purposes without any express
  * guarantee it works.
  *
- * Tom St Denis, [email protected], http://libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
  */
 
 /** 
    @file whirl.c
-   WHIRLPOOL (using their new sbox) hash function by Tom St Denis 
+   LTC_WHIRLPOOL (using their new sbox) hash function by Tom St Denis 
 */
 
 #include "tomcrypt.h"
 
-#ifdef WHIRLPOOL
+#ifdef LTC_WHIRLPOOL
 
 const struct ltc_hash_descriptor whirlpool_desc =
 {

+ 1 - 1
src/hashes/whirl/whirltab.c

@@ -1,6 +1,6 @@
 /**
    @file whirltab.c
-   WHIRLPOOL tables, Tom St Denis
+   LTC_WHIRLPOOL tables, Tom St Denis
 */   
 static const ulong64 sbox0[] = {
 CONST64(0x18186018c07830d8), CONST64(0x23238c2305af4626), CONST64(0xc6c63fc67ef991b8), CONST64(0xe8e887e8136fcdfb), 

+ 2 - 2
src/headers/tomcrypt.h

@@ -16,8 +16,8 @@ extern "C" {
 #endif
 
 /* version */
-#define CRYPT   0x0116
-#define SCRYPT  "1.16"
+#define CRYPT   0x0117
+#define SCRYPT  "1.17"
 
 /* max size of either a cipher/hash block or symmetric key [largest of the two] */
 #define MAXBLOCKSIZE  128

+ 116 - 64
src/headers/tomcrypt_cipher.h

@@ -3,41 +3,41 @@
  * We put each of the ciphers scheduled keys in their own structs then we put all of 
  * the key formats in one union.  This makes the function prototypes easier to use.
  */
-#ifdef BLOWFISH
+#ifdef LTC_BLOWFISH
 struct blowfish_key {
    ulong32 S[4][256];
    ulong32 K[18];
 };
 #endif
 
-#ifdef RC5
+#ifdef LTC_RC5
 struct rc5_key {
    int rounds;
    ulong32 K[50];
 };
 #endif
 
-#ifdef RC6
+#ifdef LTC_RC6
 struct rc6_key {
    ulong32 K[44];
 };
 #endif
 
-#ifdef SAFERP
+#ifdef LTC_SAFERP
 struct saferp_key {
    unsigned char K[33][16];
    long rounds;
 };
 #endif
 
-#ifdef RIJNDAEL
+#ifdef LTC_RIJNDAEL
 struct rijndael_key {
    ulong32 eK[60], dK[60];
    int Nr;
 };
 #endif
 
-#ifdef KSEED
+#ifdef LTC_KSEED
 struct kseed_key {
     ulong32 K[32], dK[32];
 };
@@ -51,14 +51,14 @@ struct kasumi_key {
 };
 #endif
 
-#ifdef XTEA
+#ifdef LTC_XTEA
 struct xtea_key {
    unsigned long A[32], B[32];
 };
 #endif
 
-#ifdef TWOFISH
-#ifndef TWOFISH_SMALL
+#ifdef LTC_TWOFISH
+#ifndef LTC_TWOFISH_SMALL
    struct twofish_key {
       ulong32 S[4][256], K[40];
    };
@@ -70,24 +70,24 @@ struct xtea_key {
 #endif
 #endif
 
-#ifdef SAFER
-#define SAFER_K64_DEFAULT_NOF_ROUNDS     6
-#define SAFER_K128_DEFAULT_NOF_ROUNDS   10
-#define SAFER_SK64_DEFAULT_NOF_ROUNDS    8
-#define SAFER_SK128_DEFAULT_NOF_ROUNDS  10
-#define SAFER_MAX_NOF_ROUNDS            13
-#define SAFER_BLOCK_LEN                  8
-#define SAFER_KEY_LEN     (1 + SAFER_BLOCK_LEN * (1 + 2 * SAFER_MAX_NOF_ROUNDS))
-typedef unsigned char safer_block_t[SAFER_BLOCK_LEN];
-typedef unsigned char safer_key_t[SAFER_KEY_LEN];
+#ifdef LTC_SAFER
+#define LTC_SAFER_K64_DEFAULT_NOF_ROUNDS     6
+#define LTC_SAFER_K128_DEFAULT_NOF_ROUNDS   10
+#define LTC_SAFER_SK64_DEFAULT_NOF_ROUNDS    8
+#define LTC_SAFER_SK128_DEFAULT_NOF_ROUNDS  10
+#define LTC_SAFER_MAX_NOF_ROUNDS            13
+#define LTC_SAFER_BLOCK_LEN                  8
+#define LTC_SAFER_KEY_LEN     (1 + LTC_SAFER_BLOCK_LEN * (1 + 2 * LTC_SAFER_MAX_NOF_ROUNDS))
+typedef unsigned char safer_block_t[LTC_SAFER_BLOCK_LEN];
+typedef unsigned char safer_key_t[LTC_SAFER_KEY_LEN];
 struct safer_key { safer_key_t key; };
 #endif
 
-#ifdef RC2
+#ifdef LTC_RC2
 struct rc2_key { unsigned xkey[64]; };
 #endif
 
-#ifdef DES
+#ifdef LTC_DES
 struct des_key {
     ulong32 ek[32], dk[32];
 };
@@ -97,32 +97,32 @@ struct des3_key {
 };
 #endif
 
-#ifdef CAST5
+#ifdef LTC_CAST5
 struct cast5_key {
     ulong32 K[32], keylen;
 };
 #endif
 
-#ifdef NOEKEON
+#ifdef LTC_NOEKEON
 struct noekeon_key {
     ulong32 K[4], dK[4];
 };
 #endif
 
-#ifdef SKIPJACK 
+#ifdef LTC_SKIPJACK 
 struct skipjack_key {
     unsigned char key[10];
 };
 #endif
 
-#ifdef KHAZAD
+#ifdef LTC_KHAZAD
 struct khazad_key {
    ulong64 roundKeyEnc[8 + 1]; 
    ulong64 roundKeyDec[8 + 1]; 
 };
 #endif
 
-#ifdef ANUBIS
+#ifdef LTC_ANUBIS
 struct anubis_key { 
    int keyBits; 
    int R; 
@@ -131,59 +131,69 @@ struct anubis_key {
 }; 
 #endif
 
+#ifdef LTC_MULTI2
+struct multi2_key {
+    int N;
+    ulong32 uk[8];
+};
+#endif
+
 typedef union Symmetric_key {
-#ifdef DES
+#ifdef LTC_DES
    struct des_key des;
    struct des3_key des3;
 #endif
-#ifdef RC2
+#ifdef LTC_RC2
    struct rc2_key rc2;
 #endif
-#ifdef SAFER
+#ifdef LTC_SAFER
    struct safer_key safer;
 #endif
-#ifdef TWOFISH
+#ifdef LTC_TWOFISH
    struct twofish_key  twofish;
 #endif
-#ifdef BLOWFISH
+#ifdef LTC_BLOWFISH
    struct blowfish_key blowfish;
 #endif
-#ifdef RC5
+#ifdef LTC_RC5
    struct rc5_key      rc5;
 #endif
-#ifdef RC6
+#ifdef LTC_RC6
    struct rc6_key      rc6;
 #endif
-#ifdef SAFERP
+#ifdef LTC_SAFERP
    struct saferp_key   saferp;
 #endif
-#ifdef RIJNDAEL
+#ifdef LTC_RIJNDAEL
    struct rijndael_key rijndael;
 #endif
-#ifdef XTEA
+#ifdef LTC_XTEA
    struct xtea_key     xtea;
 #endif
-#ifdef CAST5
+#ifdef LTC_CAST5
    struct cast5_key    cast5;
 #endif
-#ifdef NOEKEON
+#ifdef LTC_NOEKEON
    struct noekeon_key  noekeon;
 #endif   
-#ifdef SKIPJACK
+#ifdef LTC_SKIPJACK
    struct skipjack_key skipjack;
 #endif
-#ifdef KHAZAD
+#ifdef LTC_KHAZAD
    struct khazad_key   khazad;
 #endif
-#ifdef ANUBIS
+#ifdef LTC_ANUBIS
    struct anubis_key   anubis;
 #endif
-#ifdef KSEED
+#ifdef LTC_KSEED
    struct kseed_key    kseed;
 #endif
 #ifdef LTC_KASUMI
    struct kasumi_key   kasumi;
 #endif  
+#ifdef LTC_MULTI2
+   struct multi2_key   multi2;
+#endif
    void   *data;
 } symmetric_key;
 
@@ -257,8 +267,11 @@ typedef struct {
                        blocklen, 
    /** The padding offset */
                        padlen, 
-   /** The mode (endianess) of the CTR, 0==little, 1==big */                       
-                       mode;
+   /** The mode (endianess) of the CTR, 0==little, 1==big */
+                       mode,
+   /** counter width */
+                       ctrlen;
+
    /** The counter */                       
    unsigned char       ctr[MAXBLOCKSIZE], 
    /** The pad used to encrypt/decrypt */                       
@@ -488,7 +501,7 @@ extern struct ltc_cipher_descriptor {
              unsigned char *tag,    unsigned long *taglen,
                        int direction);
 
-   /** Accelerated one shot OMAC 
+   /** Accelerated one shot LTC_OMAC 
        @param key            The secret key
        @param keylen         The key length (octets) 
        @param in             The message 
@@ -532,7 +545,7 @@ extern struct ltc_cipher_descriptor {
              unsigned char *out, unsigned long *outlen);
 } cipher_descriptor[];
 
-#ifdef BLOWFISH
+#ifdef LTC_BLOWFISH
 int blowfish_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
 int blowfish_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);
 int blowfish_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey);
@@ -542,7 +555,7 @@ int blowfish_keysize(int *keysize);
 extern const struct ltc_cipher_descriptor blowfish_desc;
 #endif
 
-#ifdef RC5
+#ifdef LTC_RC5
 int rc5_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
 int rc5_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);
 int rc5_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey);
@@ -552,7 +565,7 @@ int rc5_keysize(int *keysize);
 extern const struct ltc_cipher_descriptor rc5_desc;
 #endif
 
-#ifdef RC6
+#ifdef LTC_RC6
 int rc6_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
 int rc6_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);
 int rc6_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey);
@@ -562,7 +575,7 @@ int rc6_keysize(int *keysize);
 extern const struct ltc_cipher_descriptor rc6_desc;
 #endif
 
-#ifdef RC2
+#ifdef LTC_RC2
 int rc2_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
 int rc2_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);
 int rc2_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey);
@@ -572,7 +585,7 @@ int rc2_keysize(int *keysize);
 extern const struct ltc_cipher_descriptor rc2_desc;
 #endif
 
-#ifdef SAFERP
+#ifdef LTC_SAFERP
 int saferp_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
 int saferp_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);
 int saferp_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey);
@@ -582,7 +595,7 @@ int saferp_keysize(int *keysize);
 extern const struct ltc_cipher_descriptor saferp_desc;
 #endif
 
-#ifdef SAFER
+#ifdef LTC_SAFER
 int safer_k64_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
 int safer_sk64_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
 int safer_k128_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
@@ -598,7 +611,7 @@ int safer_128_keysize(int *keysize);
 extern const struct ltc_cipher_descriptor safer_k64_desc, safer_k128_desc, safer_sk64_desc, safer_sk128_desc;
 #endif
 
-#ifdef RIJNDAEL
+#ifdef LTC_RIJNDAEL
 
 /* make aes an alias */
 #define aes_setup           rijndael_setup
@@ -626,7 +639,7 @@ extern const struct ltc_cipher_descriptor rijndael_desc, aes_desc;
 extern const struct ltc_cipher_descriptor rijndael_enc_desc, aes_enc_desc;
 #endif
 
-#ifdef XTEA
+#ifdef LTC_XTEA
 int xtea_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
 int xtea_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);
 int xtea_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey);
@@ -636,7 +649,7 @@ int xtea_keysize(int *keysize);
 extern const struct ltc_cipher_descriptor xtea_desc;
 #endif
 
-#ifdef TWOFISH
+#ifdef LTC_TWOFISH
 int twofish_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
 int twofish_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);
 int twofish_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey);
@@ -646,7 +659,7 @@ int twofish_keysize(int *keysize);
 extern const struct ltc_cipher_descriptor twofish_desc;
 #endif
 
-#ifdef DES
+#ifdef LTC_DES
 int des_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
 int des_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);
 int des_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey);
@@ -662,7 +675,7 @@ int des3_keysize(int *keysize);
 extern const struct ltc_cipher_descriptor des_desc, des3_desc;
 #endif
 
-#ifdef CAST5
+#ifdef LTC_CAST5
 int cast5_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
 int cast5_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);
 int cast5_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey);
@@ -672,7 +685,7 @@ int cast5_keysize(int *keysize);
 extern const struct ltc_cipher_descriptor cast5_desc;
 #endif
 
-#ifdef NOEKEON
+#ifdef LTC_NOEKEON
 int noekeon_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
 int noekeon_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);
 int noekeon_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey);
@@ -682,7 +695,7 @@ int noekeon_keysize(int *keysize);
 extern const struct ltc_cipher_descriptor noekeon_desc;
 #endif
 
-#ifdef SKIPJACK
+#ifdef LTC_SKIPJACK
 int skipjack_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
 int skipjack_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);
 int skipjack_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey);
@@ -692,7 +705,7 @@ int skipjack_keysize(int *keysize);
 extern const struct ltc_cipher_descriptor skipjack_desc;
 #endif
 
-#ifdef KHAZAD
+#ifdef LTC_KHAZAD
 int khazad_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
 int khazad_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);
 int khazad_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey);
@@ -702,7 +715,7 @@ int khazad_keysize(int *keysize);
 extern const struct ltc_cipher_descriptor khazad_desc;
 #endif
 
-#ifdef ANUBIS
+#ifdef LTC_ANUBIS
 int anubis_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
 int anubis_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);
 int anubis_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey);
@@ -712,7 +725,7 @@ int anubis_keysize(int *keysize);
 extern const struct ltc_cipher_descriptor anubis_desc;
 #endif
 
-#ifdef KSEED
+#ifdef LTC_KSEED
 int kseed_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
 int kseed_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);
 int kseed_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey);
@@ -732,6 +745,17 @@ int kasumi_keysize(int *keysize);
 extern const struct ltc_cipher_descriptor kasumi_desc;
 #endif
 
+
+#ifdef LTC_MULTI2
+int multi2_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
+int multi2_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);
+int multi2_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey);
+int multi2_test(void);
+void multi2_done(symmetric_key *skey);
+int multi2_keysize(int *keysize);
+extern const struct ltc_cipher_descriptor multi2_desc;
+#endif
+
 #ifdef LTC_ECB_MODE
 int ecb_start(int cipher, const unsigned char *key, 
               int keylen, int num_rounds, symmetric_ECB *ecb);
@@ -772,9 +796,9 @@ int cbc_done(symmetric_CBC *cbc);
 
 #ifdef LTC_CTR_MODE
 
-#define CTR_COUNTER_LITTLE_ENDIAN    0
-#define CTR_COUNTER_BIG_ENDIAN       1
-#define LTC_CTR_RFC3686              2
+#define CTR_COUNTER_LITTLE_ENDIAN    0x0000
+#define CTR_COUNTER_BIG_ENDIAN       0x1000
+#define LTC_CTR_RFC3686              0x2000
 
 int ctr_start(               int   cipher,
               const unsigned char *IV,
@@ -824,6 +848,34 @@ int f8_done(symmetric_F8 *f8);
 int f8_test_mode(void);
 #endif
 
+#ifdef LTC_XTS_MODE
+typedef struct {
+   symmetric_key  key1, key2;
+   int            cipher;
+} symmetric_xts;
+
+int xts_start(                int  cipher,
+              const unsigned char *key1, 
+              const unsigned char *key2, 
+                    unsigned long  keylen,
+                              int  num_rounds, 
+                    symmetric_xts *xts);
+
+int xts_encrypt(
+   const unsigned char *pt, unsigned long ptlen,
+         unsigned char *ct,
+   const unsigned char *tweak,
+         symmetric_xts *xts);
+int xts_decrypt(
+   const unsigned char *ct, unsigned long ptlen,
+         unsigned char *pt,
+   const unsigned char *tweak,
+         symmetric_xts *xts);
+
+void xts_done(symmetric_xts *xts);
+int  xts_test(void);
+void xts_mult_x(unsigned char *I);
+#endif
 
 int find_cipher(const char *name);
 int find_cipher_any(const char *name, int blocklen, int keylen);

+ 100 - 97
src/headers/tomcrypt_custom.h

@@ -69,10 +69,10 @@
 /* Easy button? */
 #ifdef LTC_EASY
    #define LTC_NO_CIPHERS
-   #define RIJNDAEL
-   #define BLOWFISH
-   #define DES
-   #define CAST5
+   #define LTC_RIJNDAEL
+   #define LTC_BLOWFISH
+   #define LTC_DES
+   #define LTC_CAST5
    
    #define LTC_NO_MODES
    #define LTC_ECB_MODE
@@ -80,26 +80,26 @@
    #define LTC_CTR_MODE
    
    #define LTC_NO_HASHES
-   #define SHA1
-   #define SHA512
-   #define SHA384
-   #define SHA256
-   #define SHA224
+   #define LTC_SHA1
+   #define LTC_SHA512
+   #define LTC_SHA384
+   #define LTC_SHA256
+   #define LTC_SHA224
    
    #define LTC_NO_MACS
-   #define HMAC
-   #define OMAC
-   #define CCM_MODE
+   #define LTC_HMAC
+   #define LTC_OMAC
+   #define LTC_CCM_MODE
 
    #define LTC_NO_PRNGS
-   #define SPRNG
-   #define YARROW
-   #define DEVRANDOM
+   #define LTC_SPRNG
+   #define LTC_YARROW
+   #define LTC_DEVRANDOM
    #define TRY_URANDOM_FIRST
       
    #define LTC_NO_PK
-   #define MRSA
-   #define MECC
+   #define LTC_MRSA
+   #define LTC_MECC
 #endif   
 
 /* Use small code where possible */
@@ -128,33 +128,33 @@
 /* ---> Symmetric Block Ciphers <--- */
 #ifndef LTC_NO_CIPHERS
 
-#define BLOWFISH
-#define RC2
-#define RC5
-#define RC6
-#define SAFERP
-#define RIJNDAEL
-#define XTEA
+#define LTC_BLOWFISH
+#define LTC_RC2
+#define LTC_RC5
+#define LTC_RC6
+#define LTC_SAFERP
+#define LTC_RIJNDAEL
+#define LTC_XTEA
 /* _TABLES tells it to use tables during setup, _SMALL means to use the smaller scheduled key format
  * (saves 4KB of ram), _ALL_TABLES enables all tables during setup */
-#define TWOFISH
+#define LTC_TWOFISH
 #ifndef LTC_NO_TABLES
-   #define TWOFISH_TABLES
-   /* #define TWOFISH_ALL_TABLES */
+   #define LTC_TWOFISH_TABLES
+   /* #define LTC_TWOFISH_ALL_TABLES */
 #else
-   #define TWOFISH_SMALL
+   #define LTC_TWOFISH_SMALL
 #endif
-/* #define TWOFISH_SMALL */
-/* DES includes EDE triple-DES */
-#define DES
-#define CAST5
-#define NOEKEON
-#define SKIPJACK
-#define SAFER
-#define KHAZAD
-#define ANUBIS
-#define ANUBIS_TWEAK
-#define KSEED
+/* #define LTC_TWOFISH_SMALL */
+/* LTC_DES includes EDE triple-LTC_DES */
+#define LTC_DES
+#define LTC_CAST5
+#define LTC_NOEKEON
+#define LTC_SKIPJACK
+#define LTC_SAFER
+#define LTC_KHAZAD
+#define LTC_ANUBIS
+#define LTC_ANUBIS_TWEAK
+#define LTC_KSEED
 #define LTC_KASUMI
 
 #endif /* LTC_NO_CIPHERS */
@@ -181,26 +181,29 @@
    #define LRW_TABLES
 #endif
 
+/* XTS mode */
+#define LTC_XTS_MODE
+
 #endif /* LTC_NO_MODES */
 
 /* ---> One-Way Hash Functions <--- */
 #ifndef LTC_NO_HASHES 
 
-#define CHC_HASH
-#define WHIRLPOOL
-#define SHA512
-#define SHA384
-#define SHA256
-#define SHA224
-#define TIGER
-#define SHA1
-#define MD5
-#define MD4
-#define MD2
-#define RIPEMD128
-#define RIPEMD160
-#define RIPEMD256
-#define RIPEMD320
+#define LTC_CHC_HASH
+#define LTC_WHIRLPOOL
+#define LTC_SHA512
+#define LTC_SHA384
+#define LTC_SHA256
+#define LTC_SHA224
+#define LTC_TIGER
+#define LTC_SHA1
+#define LTC_MD5
+#define LTC_MD4
+#define LTC_MD2
+#define LTC_RIPEMD128
+#define LTC_RIPEMD160
+#define LTC_RIPEMD256
+#define LTC_RIPEMD320
 
 #endif /* LTC_NO_HASHES */
 
@@ -212,69 +215,69 @@
 #define LTC_PMAC
 #define LTC_XCBC
 #define LTC_F9_MODE
-#define PELICAN
+#define LTC_PELICAN
 
-#if defined(PELICAN) && !defined(RIJNDAEL)
-   #error Pelican-MAC requires RIJNDAEL
+#if defined(LTC_PELICAN) && !defined(LTC_RIJNDAEL)
+   #error Pelican-MAC requires LTC_RIJNDAEL
 #endif
 
 /* ---> Encrypt + Authenticate Modes <--- */
 
-#define EAX_MODE
-#if defined(EAX_MODE) && !(defined(LTC_CTR_MODE) && defined(LTC_OMAC))
-   #error EAX_MODE requires CTR and OMAC mode
+#define LTC_EAX_MODE
+#if defined(LTC_EAX_MODE) && !(defined(LTC_CTR_MODE) && defined(LTC_OMAC))
+   #error LTC_EAX_MODE requires CTR and LTC_OMAC mode
 #endif
 
-#define OCB_MODE
-#define CCM_MODE
-#define GCM_MODE
+#define LTC_OCB_MODE
+#define LTC_CCM_MODE
+#define LTC_GCM_MODE
 
 /* Use 64KiB tables */
 #ifndef LTC_NO_TABLES
-   #define GCM_TABLES 
+   #define LTC_GCM_TABLES 
 #endif
 
 /* USE SSE2? requires GCC works on x86_32 and x86_64*/
-#ifdef GCM_TABLES
-/* #define GCM_TABLES_SSE2 */
+#ifdef LTC_GCM_TABLES
+/* #define LTC_GCM_TABLES_SSE2 */
 #endif
 
 #endif /* LTC_NO_MACS */
 
 /* Various tidbits of modern neatoness */
-#define BASE64
+#define LTC_BASE64
 
 /* --> Pseudo Random Number Generators <--- */
 #ifndef LTC_NO_PRNGS
 
 /* Yarrow */
-#define YARROW
+#define LTC_YARROW
 /* which descriptor of AES to use?  */
 /* 0 = rijndael_enc 1 = aes_enc, 2 = rijndael [full], 3 = aes [full] */
-#define YARROW_AES 0
+#define LTC_YARROW_AES 0
 
-#if defined(YARROW) && !defined(LTC_CTR_MODE)
-   #error YARROW requires LTC_CTR_MODE chaining mode to be defined!
+#if defined(LTC_YARROW) && !defined(LTC_CTR_MODE)
+   #error LTC_YARROW requires LTC_CTR_MODE chaining mode to be defined!
 #endif
 
 /* a PRNG that simply reads from an available system source */
-#define SPRNG
+#define LTC_SPRNG
 
-/* The RC4 stream cipher */
-#define RC4
+/* The LTC_RC4 stream cipher */
+#define LTC_RC4
 
 /* Fortuna PRNG */
-#define FORTUNA
+#define LTC_FORTUNA
 /* reseed every N calls to the read function */
-#define FORTUNA_WD    10
+#define LTC_FORTUNA_WD    10
 /* number of pools (4..32) can save a bit of ram by lowering the count */
-#define FORTUNA_POOLS 32
+#define LTC_FORTUNA_POOLS 32
 
-/* Greg's SOBER128 PRNG ;-0 */
-#define SOBER128
+/* Greg's LTC_SOBER128 PRNG ;-0 */
+#define LTC_SOBER128
 
 /* the *nix style /dev/random device */
-#define DEVRANDOM
+#define LTC_DEVRANDOM
 /* try /dev/urandom before trying /dev/random */
 #define TRY_URANDOM_FIRST
 
@@ -284,10 +287,10 @@
 #ifndef LTC_NO_MATH
 
 /* LibTomMath */
-/* #define LTM_DESC */
+/* #define LTM_LTC_DESC */
 
 /* TomsFastMath */
-/* #define TFM_DESC */
+/* #define TFM_LTC_DESC */
 
 #endif /* LTC_NO_MATH */
 
@@ -295,37 +298,37 @@
 #ifndef LTC_NO_PK
 
 /* Include RSA support */
-#define MRSA
+#define LTC_MRSA
 
 /* Include Katja (a Rabin variant like RSA) */
 /* #define MKAT */ 
 
 /* Digital Signature Algorithm */
-#define MDSA
+#define LTC_MDSA
 
 /* ECC */
-#define MECC
+#define LTC_MECC
 
 /* use Shamir's trick for point mul (speeds up signature verification) */
 #define LTC_ECC_SHAMIR
 
-#if defined(TFM_DESC) && defined(MECC)
-   #define MECC_ACCEL
+#if defined(TFM_LTC_DESC) && defined(LTC_MECC)
+   #define LTC_MECC_ACCEL
 #endif   
 
 /* do we want fixed point ECC */
-/* #define MECC_FP */
+/* #define LTC_MECC_FP */
 
 /* Timing Resistant? */
 /* #define LTC_ECC_TIMING_RESISTANT */
 
 #endif /* LTC_NO_PK */
 
-/* PKCS #1 (RSA) and #5 (Password Handling) stuff */
+/* LTC_PKCS #1 (RSA) and #5 (Password Handling) stuff */
 #ifndef LTC_NO_PKCS
 
-#define PKCS_1
-#define PKCS_5
+#define LTC_PKCS_1
+#define LTC_PKCS_5
 
 /* Include ASN.1 DER (required by DSA/RSA) */
 #define LTC_DER
@@ -334,7 +337,7 @@
 
 /* cleanup */
 
-#ifdef MECC
+#ifdef LTC_MECC
 /* Supported ECC Key Sizes */
 #ifndef LTC_NO_CURVES
    #define ECC112
@@ -348,20 +351,20 @@
 #endif
 #endif
 
-#if defined(MECC) || defined(MRSA) || defined(MDSA) || defined(MKATJA)
+#if defined(LTC_MECC) || defined(LTC_MRSA) || defined(LTC_MDSA) || defined(MKATJA)
    /* Include the MPI functionality?  (required by the PK algorithms) */
    #define MPI
 #endif
 
-#ifdef MRSA
-   #define PKCS_1
+#ifdef LTC_MRSA
+   #define LTC_PKCS_1
 #endif   
 
 #if defined(LTC_DER) && !defined(MPI) 
    #error ASN.1 DER requires MPI functionality
 #endif
 
-#if (defined(MDSA) || defined(MRSA) || defined(MECC) || defined(MKATJA)) && !defined(LTC_DER)
+#if (defined(LTC_MDSA) || defined(LTC_MRSA) || defined(LTC_MECC) || defined(MKATJA)) && !defined(LTC_DER)
    #error PK requires ASN.1 DER functionality, make sure LTC_DER is enabled
 #endif
 
@@ -391,7 +394,7 @@
 
 /* Debuggers */
 
-/* define this if you use Valgrind, note: it CHANGES the way SOBER-128 and RC4 work (see the code) */
+/* define this if you use Valgrind, note: it CHANGES the way SOBER-128 and LTC_RC4 work (see the code) */
 /* #define LTC_VALGRIND */
 
 #endif

+ 45 - 45
src/headers/tomcrypt_hash.h

@@ -1,5 +1,5 @@
 /* ---- HASH FUNCTIONS ---- */
-#ifdef SHA512
+#ifdef LTC_SHA512
 struct sha512_state {
     ulong64  length, state[8];
     unsigned long curlen;
@@ -7,7 +7,7 @@ struct sha512_state {
 };
 #endif
 
-#ifdef SHA256
+#ifdef LTC_SHA256
 struct sha256_state {
     ulong64 length;
     ulong32 state[8], curlen;
@@ -15,7 +15,7 @@ struct sha256_state {
 };
 #endif
 
-#ifdef SHA1
+#ifdef LTC_SHA1
 struct sha1_state {
     ulong64 length;
     ulong32 state[5], curlen;
@@ -23,7 +23,7 @@ struct sha1_state {
 };
 #endif
 
-#ifdef MD5
+#ifdef LTC_MD5
 struct md5_state {
     ulong64 length;
     ulong32 state[4], curlen;
@@ -31,7 +31,7 @@ struct md5_state {
 };
 #endif
 
-#ifdef MD4
+#ifdef LTC_MD4
 struct md4_state {
     ulong64 length;
     ulong32 state[4], curlen;
@@ -39,7 +39,7 @@ struct md4_state {
 };
 #endif
 
-#ifdef TIGER
+#ifdef LTC_TIGER
 struct tiger_state {
     ulong64 state[3], length;
     unsigned long curlen;
@@ -47,14 +47,14 @@ struct tiger_state {
 };
 #endif
 
-#ifdef MD2
+#ifdef LTC_MD2
 struct md2_state {
     unsigned char chksum[16], X[48], buf[16];
     unsigned long curlen;
 };
 #endif
 
-#ifdef RIPEMD128
+#ifdef LTC_RIPEMD128
 struct rmd128_state {
     ulong64 length;
     unsigned char buf[64];
@@ -62,7 +62,7 @@ struct rmd128_state {
 };
 #endif
 
-#ifdef RIPEMD160
+#ifdef LTC_RIPEMD160
 struct rmd160_state {
     ulong64 length;
     unsigned char buf[64];
@@ -70,7 +70,7 @@ struct rmd160_state {
 };
 #endif
 
-#ifdef RIPEMD256
+#ifdef LTC_RIPEMD256
 struct rmd256_state {
     ulong64 length;
     unsigned char buf[64];
@@ -78,7 +78,7 @@ struct rmd256_state {
 };
 #endif
 
-#ifdef RIPEMD320
+#ifdef LTC_RIPEMD320
 struct rmd320_state {
     ulong64 length;
     unsigned char buf[64];
@@ -86,7 +86,7 @@ struct rmd320_state {
 };
 #endif
 
-#ifdef WHIRLPOOL
+#ifdef LTC_WHIRLPOOL
 struct whirlpool_state {
     ulong64 length, state[8];
     unsigned char buf[64];
@@ -94,7 +94,7 @@ struct whirlpool_state {
 };
 #endif
 
-#ifdef CHC_HASH
+#ifdef LTC_CHC_HASH
 struct chc_state {
     ulong64 length;
     unsigned char state[MAXBLOCKSIZE], buf[MAXBLOCKSIZE];
@@ -104,43 +104,43 @@ struct chc_state {
 
 typedef union Hash_state {
     char dummy[1];
-#ifdef CHC_HASH
+#ifdef LTC_CHC_HASH
     struct chc_state chc;
 #endif
-#ifdef WHIRLPOOL
+#ifdef LTC_WHIRLPOOL
     struct whirlpool_state whirlpool;
 #endif
-#ifdef SHA512
+#ifdef LTC_SHA512
     struct sha512_state sha512;
 #endif
-#ifdef SHA256
+#ifdef LTC_SHA256
     struct sha256_state sha256;
 #endif
-#ifdef SHA1
+#ifdef LTC_SHA1
     struct sha1_state   sha1;
 #endif
-#ifdef MD5
+#ifdef LTC_MD5
     struct md5_state    md5;
 #endif
-#ifdef MD4
+#ifdef LTC_MD4
     struct md4_state    md4;
 #endif
-#ifdef MD2
+#ifdef LTC_MD2
     struct md2_state    md2;
 #endif
-#ifdef TIGER
+#ifdef LTC_TIGER
     struct tiger_state  tiger;
 #endif
-#ifdef RIPEMD128
+#ifdef LTC_RIPEMD128
     struct rmd128_state rmd128;
 #endif
-#ifdef RIPEMD160
+#ifdef LTC_RIPEMD160
     struct rmd160_state rmd160;
 #endif
-#ifdef RIPEMD256
+#ifdef LTC_RIPEMD256
     struct rmd256_state rmd256;
 #endif
-#ifdef RIPEMD320
+#ifdef LTC_RIPEMD320
     struct rmd320_state rmd320;
 #endif
     void *data;
@@ -191,7 +191,7 @@ extern  struct ltc_hash_descriptor {
 
 } hash_descriptor[];
 
-#ifdef CHC_HASH
+#ifdef LTC_CHC_HASH
 int chc_register(int cipher);
 int chc_init(hash_state * md);
 int chc_process(hash_state * md, const unsigned char *in, unsigned long inlen);
@@ -200,7 +200,7 @@ int chc_test(void);
 extern const struct ltc_hash_descriptor chc_desc;
 #endif
 
-#ifdef WHIRLPOOL
+#ifdef LTC_WHIRLPOOL
 int whirlpool_init(hash_state * md);
 int whirlpool_process(hash_state * md, const unsigned char *in, unsigned long inlen);
 int whirlpool_done(hash_state * md, unsigned char *hash);
@@ -208,7 +208,7 @@ int whirlpool_test(void);
 extern const struct ltc_hash_descriptor whirlpool_desc;
 #endif
 
-#ifdef SHA512
+#ifdef LTC_SHA512
 int sha512_init(hash_state * md);
 int sha512_process(hash_state * md, const unsigned char *in, unsigned long inlen);
 int sha512_done(hash_state * md, unsigned char *hash);
@@ -216,9 +216,9 @@ int sha512_test(void);
 extern const struct ltc_hash_descriptor sha512_desc;
 #endif
 
-#ifdef SHA384
-#ifndef SHA512
-   #error SHA512 is required for SHA384
+#ifdef LTC_SHA384
+#ifndef LTC_SHA512
+   #error LTC_SHA512 is required for LTC_SHA384
 #endif
 int sha384_init(hash_state * md);
 #define sha384_process sha512_process
@@ -227,16 +227,16 @@ int sha384_test(void);
 extern const struct ltc_hash_descriptor sha384_desc;
 #endif
 
-#ifdef SHA256
+#ifdef LTC_SHA256
 int sha256_init(hash_state * md);
 int sha256_process(hash_state * md, const unsigned char *in, unsigned long inlen);
 int sha256_done(hash_state * md, unsigned char *hash);
 int sha256_test(void);
 extern const struct ltc_hash_descriptor sha256_desc;
 
-#ifdef SHA224
-#ifndef SHA256
-   #error SHA256 is required for SHA224
+#ifdef LTC_SHA224
+#ifndef LTC_SHA256
+   #error LTC_SHA256 is required for LTC_SHA224
 #endif
 int sha224_init(hash_state * md);
 #define sha224_process sha256_process
@@ -246,7 +246,7 @@ extern const struct ltc_hash_descriptor sha224_desc;
 #endif
 #endif
 
-#ifdef SHA1
+#ifdef LTC_SHA1
 int sha1_init(hash_state * md);
 int sha1_process(hash_state * md, const unsigned char *in, unsigned long inlen);
 int sha1_done(hash_state * md, unsigned char *hash);
@@ -254,7 +254,7 @@ int sha1_test(void);
 extern const struct ltc_hash_descriptor sha1_desc;
 #endif
 
-#ifdef MD5
+#ifdef LTC_MD5
 int md5_init(hash_state * md);
 int md5_process(hash_state * md, const unsigned char *in, unsigned long inlen);
 int md5_done(hash_state * md, unsigned char *hash);
@@ -262,7 +262,7 @@ int md5_test(void);
 extern const struct ltc_hash_descriptor md5_desc;
 #endif
 
-#ifdef MD4
+#ifdef LTC_MD4
 int md4_init(hash_state * md);
 int md4_process(hash_state * md, const unsigned char *in, unsigned long inlen);
 int md4_done(hash_state * md, unsigned char *hash);
@@ -270,7 +270,7 @@ int md4_test(void);
 extern const struct ltc_hash_descriptor md4_desc;
 #endif
 
-#ifdef MD2
+#ifdef LTC_MD2
 int md2_init(hash_state * md);
 int md2_process(hash_state * md, const unsigned char *in, unsigned long inlen);
 int md2_done(hash_state * md, unsigned char *hash);
@@ -278,7 +278,7 @@ int md2_test(void);
 extern const struct ltc_hash_descriptor md2_desc;
 #endif
 
-#ifdef TIGER
+#ifdef LTC_TIGER
 int tiger_init(hash_state * md);
 int tiger_process(hash_state * md, const unsigned char *in, unsigned long inlen);
 int tiger_done(hash_state * md, unsigned char *hash);
@@ -286,7 +286,7 @@ int tiger_test(void);
 extern const struct ltc_hash_descriptor tiger_desc;
 #endif
 
-#ifdef RIPEMD128
+#ifdef LTC_RIPEMD128
 int rmd128_init(hash_state * md);
 int rmd128_process(hash_state * md, const unsigned char *in, unsigned long inlen);
 int rmd128_done(hash_state * md, unsigned char *hash);
@@ -294,7 +294,7 @@ int rmd128_test(void);
 extern const struct ltc_hash_descriptor rmd128_desc;
 #endif
 
-#ifdef RIPEMD160
+#ifdef LTC_RIPEMD160
 int rmd160_init(hash_state * md);
 int rmd160_process(hash_state * md, const unsigned char *in, unsigned long inlen);
 int rmd160_done(hash_state * md, unsigned char *hash);
@@ -302,7 +302,7 @@ int rmd160_test(void);
 extern const struct ltc_hash_descriptor rmd160_desc;
 #endif
 
-#ifdef RIPEMD256
+#ifdef LTC_RIPEMD256
 int rmd256_init(hash_state * md);
 int rmd256_process(hash_state * md, const unsigned char *in, unsigned long inlen);
 int rmd256_done(hash_state * md, unsigned char *hash);
@@ -310,7 +310,7 @@ int rmd256_test(void);
 extern const struct ltc_hash_descriptor rmd256_desc;
 #endif
 
-#ifdef RIPEMD320
+#ifdef LTC_RIPEMD320
 int rmd320_init(hash_state * md);
 int rmd320_process(hash_state * md, const unsigned char *in, unsigned long inlen);
 int rmd320_done(hash_state * md, unsigned char *hash);

+ 20 - 17
src/headers/tomcrypt_mac.h

@@ -51,7 +51,7 @@ int omac_file(int cipher,
               const          char *filename, 
                     unsigned char *out, unsigned long *outlen);
 int omac_test(void);
-#endif /* OMAC */
+#endif /* LTC_OMAC */
 
 #ifdef LTC_PMAC
 
@@ -96,10 +96,10 @@ void pmac_shift_xor(pmac_state *pmac);
 
 #endif /* PMAC */
 
-#ifdef EAX_MODE
+#ifdef LTC_EAX_MODE
 
 #if !(defined(LTC_OMAC) && defined(LTC_CTR_MODE))
-   #error EAX_MODE requires OMAC and CTR
+   #error LTC_EAX_MODE requires LTC_OMAC and CTR
 #endif
 
 typedef struct {
@@ -137,7 +137,7 @@ int eax_decrypt_verify_memory(int cipher,
  int eax_test(void);
 #endif /* EAX MODE */
 
-#ifdef OCB_MODE
+#ifdef LTC_OCB_MODE
 typedef struct {
    unsigned char     L[MAXBLOCKSIZE],         /* L value */
                      Ls[32][MAXBLOCKSIZE],    /* L shifted by i bits to the left */
@@ -191,9 +191,9 @@ int ocb_ntz(unsigned long x);
 int s_ocb_done(ocb_state *ocb, const unsigned char *pt, unsigned long ptlen,
                unsigned char *ct, unsigned char *tag, unsigned long *taglen, int mode);
 
-#endif /* OCB_MODE */
+#endif /* LTC_OCB_MODE */
 
-#ifdef CCM_MODE
+#ifdef LTC_CCM_MODE
 
 #define CCM_ENCRYPT 0
 #define CCM_DECRYPT 1
@@ -210,26 +210,26 @@ int ccm_memory(int cipher,
 
 int ccm_test(void);
 
-#endif /* CCM_MODE */
+#endif /* LTC_CCM_MODE */
 
-#if defined(LRW_MODE) || defined(GCM_MODE)
+#if defined(LRW_MODE) || defined(LTC_GCM_MODE)
 void gcm_gf_mult(const unsigned char *a, const unsigned char *b, unsigned char *c);
 #endif
 
 
 /* table shared between GCM and LRW */
-#if defined(GCM_TABLES) || defined(LRW_TABLES) || ((defined(GCM_MODE) || defined(GCM_MODE)) && defined(LTC_FAST))
+#if defined(LTC_GCM_TABLES) || defined(LRW_TABLES) || ((defined(LTC_GCM_MODE) || defined(LTC_GCM_MODE)) && defined(LTC_FAST))
 extern const unsigned char gcm_shift_table[];
 #endif
 
-#ifdef GCM_MODE
+#ifdef LTC_GCM_MODE
 
 #define GCM_ENCRYPT 0
 #define GCM_DECRYPT 1
 
-#define GCM_MODE_IV    0
-#define GCM_MODE_AAD   1
-#define GCM_MODE_TEXT  2
+#define LTC_GCM_MODE_IV    0
+#define LTC_GCM_MODE_AAD   1
+#define LTC_GCM_MODE_TEXT  2
 
 typedef struct { 
    symmetric_key       K;
@@ -247,9 +247,9 @@ typedef struct {
    ulong64             totlen,       /* 64-bit counter used for IV and AAD */
                        pttotlen;     /* 64-bit counter for the PT */
 
-#ifdef GCM_TABLES
+#ifdef LTC_GCM_TABLES
    unsigned char       PC[16][256][16]  /* 16 tables of 8x128 */
-#ifdef GCM_TABLES_SSE2
+#ifdef LTC_GCM_TABLES_SSE2
 __attribute__ ((aligned (16)))
 #endif
 ;
@@ -287,9 +287,9 @@ int gcm_memory(      int           cipher,
                                int direction);
 int gcm_test(void);
 
-#endif /* GCM_MODE */
+#endif /* LTC_GCM_MODE */
 
-#ifdef PELICAN
+#ifdef LTC_PELICAN
 
 typedef struct pelican_state
 {
@@ -311,6 +311,9 @@ int pelican_memory(const unsigned char *key, unsigned long keylen,
 
 #ifdef LTC_XCBC
 
+/* add this to "keylen" to xcbc_init to use a pure three-key XCBC MAC */
+#define LTC_XCBC_PURE  0x8000UL
+
 typedef struct {
    unsigned char K[3][MAXBLOCKSIZE],
                  IV[MAXBLOCKSIZE];

+ 2 - 2
src/headers/tomcrypt_math.h

@@ -7,11 +7,11 @@
 #define LTC_MP_NO    0
 #define LTC_MP_YES   1
 
-#ifndef MECC
+#ifndef LTC_MECC
    typedef void ecc_point;
 #endif
 
-#ifndef MRSA
+#ifndef LTC_MRSA
    typedef void rsa_key;
 #endif
 

+ 2 - 2
src/headers/tomcrypt_misc.h

@@ -1,5 +1,5 @@
-/* ---- BASE64 Routines ---- */
-#ifdef BASE64
+/* ---- LTC_BASE64 Routines ---- */
+#ifdef LTC_BASE64
 int base64_encode(const unsigned char *in,  unsigned long len, 
                         unsigned char *out, unsigned long *outlen);
 

+ 28 - 20
src/headers/tomcrypt_pk.h

@@ -8,13 +8,13 @@ enum {
 int rand_prime(void *N, long len, prng_state *prng, int wprng);
 
 /* ---- RSA ---- */
-#ifdef MRSA
+#ifdef LTC_MRSA
 
 /* Min and Max RSA key sizes (in bits) */
 #define MIN_RSA_SIZE 1024
 #define MAX_RSA_SIZE 4096
 
-/** RSA PKCS style key */
+/** RSA LTC_PKCS style key */
 typedef struct Rsa_key {
     /** Type of key, PK_PRIVATE or PK_PUBLIC */
     int type;
@@ -44,20 +44,20 @@ int rsa_exptmod(const unsigned char *in,   unsigned long inlen,
 
 void rsa_free(rsa_key *key);
 
-/* These use PKCS #1 v2.0 padding */
+/* These use LTC_PKCS #1 v2.0 padding */
 #define rsa_encrypt_key(_in, _inlen, _out, _outlen, _lparam, _lparamlen, _prng, _prng_idx, _hash_idx, _key) \
-  rsa_encrypt_key_ex(_in, _inlen, _out, _outlen, _lparam, _lparamlen, _prng, _prng_idx, _hash_idx, LTC_PKCS_1_OAEP, _key)
+  rsa_encrypt_key_ex(_in, _inlen, _out, _outlen, _lparam, _lparamlen, _prng, _prng_idx, _hash_idx, LTC_LTC_PKCS_1_OAEP, _key)
 
 #define rsa_decrypt_key(_in, _inlen, _out, _outlen, _lparam, _lparamlen, _hash_idx, _stat, _key) \
-  rsa_decrypt_key_ex(_in, _inlen, _out, _outlen, _lparam, _lparamlen, _hash_idx, LTC_PKCS_1_OAEP, _stat, _key)
+  rsa_decrypt_key_ex(_in, _inlen, _out, _outlen, _lparam, _lparamlen, _hash_idx, LTC_LTC_PKCS_1_OAEP, _stat, _key)
 
 #define rsa_sign_hash(_in, _inlen, _out, _outlen, _prng, _prng_idx, _hash_idx, _saltlen, _key) \
-  rsa_sign_hash_ex(_in, _inlen, _out, _outlen, LTC_PKCS_1_PSS, _prng, _prng_idx, _hash_idx, _saltlen, _key)
+  rsa_sign_hash_ex(_in, _inlen, _out, _outlen, LTC_LTC_PKCS_1_PSS, _prng, _prng_idx, _hash_idx, _saltlen, _key)
 
 #define rsa_verify_hash(_sig, _siglen, _hash, _hashlen, _hash_idx, _saltlen, _stat, _key) \
-  rsa_verify_hash_ex(_sig, _siglen, _hash, _hashlen, LTC_PKCS_1_PSS, _hash_idx, _saltlen, _stat, _key)
+  rsa_verify_hash_ex(_sig, _siglen, _hash, _hashlen, LTC_LTC_PKCS_1_PSS, _hash_idx, _saltlen, _stat, _key)
 
-/* These can be switched between PKCS #1 v2.x and PKCS #1 v1.5 paddings */
+/* These can be switched between LTC_PKCS #1 v2.x and LTC_PKCS #1 v1.5 paddings */
 int rsa_encrypt_key_ex(const unsigned char *in,     unsigned long inlen,
                              unsigned char *out,    unsigned long *outlen,
                        const unsigned char *lparam, unsigned long lparamlen,
@@ -82,7 +82,7 @@ int rsa_verify_hash_ex(const unsigned char *sig,      unsigned long siglen,
                              int            hash_idx, unsigned long saltlen,
                              int           *stat,     rsa_key      *key);
 
-/* PKCS #1 import/export */
+/* LTC_PKCS #1 import/export */
 int rsa_export(unsigned char *out, unsigned long *outlen, int type, rsa_key *key);
 int rsa_import(const unsigned char *in, unsigned long inlen, rsa_key *key);
                         
@@ -95,7 +95,7 @@ int rsa_import(const unsigned char *in, unsigned long inlen, rsa_key *key);
 #define MIN_KAT_SIZE 1024
 #define MAX_KAT_SIZE 4096
 
-/** Katja PKCS style key */
+/** Katja LTC_PKCS style key */
 typedef struct KAT_key {
     /** Type of key, PK_PRIVATE or PK_PUBLIC */
     int type;
@@ -125,7 +125,7 @@ int katja_exptmod(const unsigned char *in,   unsigned long inlen,
 
 void katja_free(katja_key *key);
 
-/* These use PKCS #1 v2.0 padding */
+/* These use LTC_PKCS #1 v2.0 padding */
 int katja_encrypt_key(const unsigned char *in,     unsigned long inlen,
                             unsigned char *out,    unsigned long *outlen,
                       const unsigned char *lparam, unsigned long lparamlen,
@@ -137,14 +137,14 @@ int katja_decrypt_key(const unsigned char *in,       unsigned long inlen,
                             int            hash_idx, int *stat,
                             katja_key       *key);
 
-/* PKCS #1 import/export */
+/* LTC_PKCS #1 import/export */
 int katja_export(unsigned char *out, unsigned long *outlen, int type, katja_key *key);
 int katja_import(const unsigned char *in, unsigned long inlen, katja_key *key);
                         
 #endif
 
 /* ---- ECC Routines ---- */
-#ifdef MECC
+#ifdef LTC_MECC
 
 /* size of our temp buffers for exported keys */
 #define ECC_BUF_SIZE 256
@@ -251,7 +251,7 @@ void       ltc_ecc_del_point(ecc_point *p);
 int        ltc_ecc_is_valid_idx(int n);
 
 /* point ops (mp == montgomery digit) */
-#if !defined(MECC_ACCEL) || defined(LTM_DESC) || defined(GMP_DESC)
+#if !defined(LTC_MECC_ACCEL) || defined(LTM_LTC_DESC) || defined(GMP_LTC_DESC)
 /* R = 2P */
 int ltc_ecc_projective_dbl_point(ecc_point *P, ecc_point *R, void *modulus, void *mp);
 
@@ -259,11 +259,18 @@ int ltc_ecc_projective_dbl_point(ecc_point *P, ecc_point *R, void *modulus, void
 int ltc_ecc_projective_add_point(ecc_point *P, ecc_point *Q, ecc_point *R, void *modulus, void *mp);
 #endif
 
-#if defined(MECC_FP)
+#if defined(LTC_MECC_FP)
+/* optimized point multiplication using fixed point cache (HAC algorithm 14.117) */
 int ltc_ecc_fp_mulmod(void *k, ecc_point *G, ecc_point *R, void *modulus, int map);
+
+/* functions for saving/loading/freeing/adding to fixed point cache */
 int ltc_ecc_fp_save_state(unsigned char **out, unsigned long *outlen);
 int ltc_ecc_fp_restore_state(unsigned char *in, unsigned long inlen);
 void ltc_ecc_fp_free(void);
+int ltc_ecc_fp_add_point(ecc_point *g, void *modulus, int lock);
+
+/* lock/unlock all points currently in fixed point cache */
+void ltc_ecc_fp_tablelock(int lock);
 #endif
 
 /* R = kG */
@@ -276,7 +283,8 @@ int ltc_ecc_mul2add(ecc_point *A, void *kA,
                     ecc_point *C,
                          void *modulus);
 
-#ifdef MECC_FP
+#ifdef LTC_MECC_FP
+/* Shamir's trick with optimized point multiplication using fixed point cache */
 int ltc_ecc_fp_mul2add(ecc_point *A, void *kA,
                        ecc_point *B, void *kB,
                        ecc_point *C, void *modulus);
@@ -290,13 +298,13 @@ int ltc_ecc_map(ecc_point *P, void *modulus, void *mp);
 
 #endif
 
-#ifdef MDSA
+#ifdef LTC_MDSA
 
 /* Max diff between group and modulus size in bytes */
-#define MDSA_DELTA     512
+#define LTC_MDSA_DELTA     512
 
 /* Max DSA group size in bytes (default allows 4k-bit groups) */
-#define MDSA_MAX_GROUP 512
+#define LTC_MDSA_MAX_GROUP 512
 
 /** DSA key structure */
 typedef struct {
@@ -496,7 +504,7 @@ int der_printable_char_encode(int c);
 int der_printable_value_decode(int v);
 
 /* UTF-8 */
-#if (defined(SIZE_MAX) || __STDC_VERSION__ >= 199901L || defined(WCHAR_MAX) || defined(_WCHAR_T) || defined(_WCHAR_T_DEFINED)) && !defined(LTC_NO_WCHAR)
+#if (defined(SIZE_MAX) || __STDC_VERSION__ >= 199901L || defined(WCHAR_MAX) || defined(_WCHAR_T) || defined(_WCHAR_T_DEFINED) || defined (__WCHAR_TYPE__)) && !defined(LTC_NO_WCHAR) 
 #include <wchar.h>
 #else
 typedef ulong32 wchar_t;

+ 12 - 12
src/headers/tomcrypt_pkcs.h

@@ -1,19 +1,19 @@
-/* PKCS Header Info */
+/* LTC_PKCS Header Info */
 
-/* ===> PKCS #1 -- RSA Cryptography <=== */
-#ifdef PKCS_1
+/* ===> LTC_PKCS #1 -- RSA Cryptography <=== */
+#ifdef LTC_PKCS_1
 
 enum ltc_pkcs_1_v1_5_blocks
 {
-  LTC_PKCS_1_EMSA   = 1,        /* Block type 1 (PKCS #1 v1.5 signature padding) */
-  LTC_PKCS_1_EME    = 2         /* Block type 2 (PKCS #1 v1.5 encryption padding) */
+  LTC_LTC_PKCS_1_EMSA   = 1,        /* Block type 1 (LTC_PKCS #1 v1.5 signature padding) */
+  LTC_LTC_PKCS_1_EME    = 2         /* Block type 2 (LTC_PKCS #1 v1.5 encryption padding) */
 };
 
 enum ltc_pkcs_1_paddings
 {
-  LTC_PKCS_1_V1_5   = 1,        /* PKCS #1 v1.5 padding (\sa ltc_pkcs_1_v1_5_blocks) */
-  LTC_PKCS_1_OAEP   = 2,        /* PKCS #1 v2.0 encryption padding */
-  LTC_PKCS_1_PSS    = 3         /* PKCS #1 v2.1 signature padding */
+  LTC_LTC_PKCS_1_V1_5   = 1,        /* LTC_PKCS #1 v1.5 padding (\sa ltc_pkcs_1_v1_5_blocks) */
+  LTC_LTC_PKCS_1_OAEP   = 2,        /* LTC_PKCS #1 v2.0 encryption padding */
+  LTC_LTC_PKCS_1_PSS    = 3         /* LTC_PKCS #1 v2.1 signature padding */
 };
 
 int pkcs_1_mgf1(      int            hash_idx,
@@ -65,10 +65,10 @@ int pkcs_1_pss_decode(const unsigned char *msghash, unsigned long msghashlen,
                             unsigned long saltlen,  int           hash_idx,
                             unsigned long modulus_bitlen, int    *res);
 
-#endif /* PKCS_1 */
+#endif /* LTC_PKCS_1 */
 
-/* ===> PKCS #5 -- Password Based Cryptography <=== */
-#ifdef PKCS_5
+/* ===> LTC_PKCS #5 -- Password Based Cryptography <=== */
+#ifdef LTC_PKCS_5
 
 /* Algorithm #1 (old) */
 int pkcs_5_alg1(const unsigned char *password, unsigned long password_len, 
@@ -82,7 +82,7 @@ int pkcs_5_alg2(const unsigned char *password, unsigned long password_len,
                 int iteration_count,           int hash_idx,
                 unsigned char *out,            unsigned long *outlen);
 
-#endif  /* PKCS_5 */
+#endif  /* LTC_PKCS_5 */
 
 /* $Source$ */
 /* $Revision$ */

+ 14 - 14
src/headers/tomcrypt_prng.h

@@ -1,5 +1,5 @@
 /* ---- PRNG Stuff ---- */
-#ifdef YARROW
+#ifdef LTC_YARROW
 struct yarrow_prng {
     int                   cipher, hash;
     unsigned char         pool[MAXBLOCKSIZE];
@@ -8,16 +8,16 @@ struct yarrow_prng {
 };
 #endif
 
-#ifdef RC4
+#ifdef LTC_RC4
 struct rc4_prng {
     int x, y;
     unsigned char buf[256];
 };
 #endif
 
-#ifdef FORTUNA
+#ifdef LTC_FORTUNA
 struct fortuna_prng {
-    hash_state pool[FORTUNA_POOLS];     /* the  pools */
+    hash_state pool[LTC_FORTUNA_POOLS];     /* the  pools */
 
     symmetric_key skey;
 
@@ -33,7 +33,7 @@ struct fortuna_prng {
 };
 #endif
 
-#ifdef SOBER128
+#ifdef LTC_SOBER128
 struct sober128_prng {
     ulong32      R[17],          /* Working storage for the shift register */
                  initR[17],      /* saved register contents */ 
@@ -49,16 +49,16 @@ struct sober128_prng {
 
 typedef union Prng_state {
     char dummy[1];
-#ifdef YARROW
+#ifdef LTC_YARROW
     struct yarrow_prng    yarrow;
 #endif
-#ifdef RC4
+#ifdef LTC_RC4
     struct rc4_prng       rc4;
 #endif
-#ifdef FORTUNA
+#ifdef LTC_FORTUNA
     struct fortuna_prng   fortuna;
 #endif
-#ifdef SOBER128
+#ifdef LTC_SOBER128
     struct sober128_prng  sober128;
 #endif
 } prng_state;
@@ -118,7 +118,7 @@ extern struct ltc_prng_descriptor {
     int (*test)(void);
 } prng_descriptor[];
 
-#ifdef YARROW
+#ifdef LTC_YARROW
 int yarrow_start(prng_state *prng);
 int yarrow_add_entropy(const unsigned char *in, unsigned long inlen, prng_state *prng);
 int yarrow_ready(prng_state *prng);
@@ -130,7 +130,7 @@ int  yarrow_test(void);
 extern const struct ltc_prng_descriptor yarrow_desc;
 #endif
 
-#ifdef FORTUNA
+#ifdef LTC_FORTUNA
 int fortuna_start(prng_state *prng);
 int fortuna_add_entropy(const unsigned char *in, unsigned long inlen, prng_state *prng);
 int fortuna_ready(prng_state *prng);
@@ -142,7 +142,7 @@ int  fortuna_test(void);
 extern const struct ltc_prng_descriptor fortuna_desc;
 #endif
 
-#ifdef RC4
+#ifdef LTC_RC4
 int rc4_start(prng_state *prng);
 int rc4_add_entropy(const unsigned char *in, unsigned long inlen, prng_state *prng);
 int rc4_ready(prng_state *prng);
@@ -154,7 +154,7 @@ int  rc4_test(void);
 extern const struct ltc_prng_descriptor rc4_desc;
 #endif
 
-#ifdef SPRNG
+#ifdef LTC_SPRNG
 int sprng_start(prng_state *prng);
 int sprng_add_entropy(const unsigned char *in, unsigned long inlen, prng_state *prng);
 int sprng_ready(prng_state *prng);
@@ -166,7 +166,7 @@ int  sprng_test(void);
 extern const struct ltc_prng_descriptor sprng_desc;
 #endif
 
-#ifdef SOBER128
+#ifdef LTC_SOBER128
 int sober128_start(prng_state *prng);
 int sober128_add_entropy(const unsigned char *in, unsigned long inlen, prng_state *prng);
 int sober128_ready(prng_state *prng);

Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov