/*
   +----------------------------------------------------------------------+
   | Copyright (c) 2002-2005 J Smith <dark_panda@hushmail.com>            |
   | Crypto++ sources (not included) copyright (c) 1995-2003 Wei Dai      |
   +----------------------------------------------------------------------+
   | Check out COPYING for the exact license.                             |
   +----------------------------------------------------------------------+

$Id: jconfig.h,v 1.11 2005/01/06 18:16:42 jay Exp $
*/

#ifndef __JCONFIG_H__
#define __JCONFIG_H__

// to enable or disable specific cipher algorithms,
// set these to either 1 or 0 -- 1 for enabled, 0 for
// disabled, obviously.

#define ENABLED_3WAY                           1
#define ENABLED_AES                            1
#define ENABLED_BLOWFISH                       1
#define ENABLED_CAMELLIA                       1
#define ENABLED_CAST128                        1
#define ENABLED_CAST256                        1
#define ENABLED_DES                            1
#define ENABLED_DES_EDE2                       1
#define ENABLED_DES_EDE3                       1
#define ENABLED_DES_XEX3                       1
#define ENABLED_DIAMOND2                       0
#define ENABLED_DIAMOND2_LITE                  0
#define ENABLED_GOST                           1
#define ENABLED_IDEA                           1
#define ENABLED_MARS                           1
#define ENABLED_RC2                            1
#define ENABLED_RC5                            1
#define ENABLED_RC6                            1
#define ENABLED_SAFER_K                        1
#define ENABLED_SAFER_SK                       1
#define ENABLED_SHACAL2                        1
#define ENABLED_SHARK                          1
#define ENABLED_SERPENT                        1
#define ENABLED_SKIPJACK                       1
#define ENABLED_SQUARE                         1
#define ENABLED_TEA                            1
#define ENABLED_TWOFISH                        1

#define ENABLED_ARC4                           1
#define ENABLED_MARC4                          1
#define ENABLED_PANAMA_LITTLE_ENDIAN_CIPHER    1
#define ENABLED_PANAMA_BIG_ENDIAN_CIPHER       1
#define ENABLED_SEAL_LITTLE_ENDIAN             1
#define ENABLED_SEAL_BIG_ENDIAN                1

#define ENABLED_HAVAL                          1
#define ENABLED_HAVAL3                         1
#define ENABLED_HAVAL4                         1
#define ENABLED_HAVAL5                         1
#define ENABLED_MD2                            1
#define ENABLED_MD4                            1
#define ENABLED_MD5                            1
#define ENABLED_PANAMA_LITTLE_ENDIAN_HASH      1
#define ENABLED_PANAMA_BIG_ENDIAN_HASH         1
#define ENABLED_RIPEMD128                      1
#define ENABLED_RIPEMD160                      1
#define ENABLED_RIPEMD256                      1
#define ENABLED_RIPEMD320                      1
#define ENABLED_SHA1                           1
#define ENABLED_SHA256                         1
#define ENABLED_SHA384                         1
#define ENABLED_SHA512                         1
#define ENABLED_TIGER                          1
#define ENABLED_WHIRLPOOL                      1

#define ENABLED_MD2_HMAC                       1
#define ENABLED_MD4_HMAC                       1
#define ENABLED_MD5_HMAC                       1
#define ENABLED_RIPEMD128_HMAC                 1
#define ENABLED_RIPEMD160_HMAC                 1
#define ENABLED_RIPEMD256_HMAC                 1
#define ENABLED_RIPEMD320_HMAC                 1
#define ENABLED_SHA1_HMAC                      1
#define ENABLED_SHA256_HMAC                    1
#define ENABLED_SHA384_HMAC                    1
#define ENABLED_SHA512_HMAC                    1
#define ENABLED_TIGER_HMAC                     1
#define ENABLED_WHIRLPOOL_HMAC                 1

#define ENABLED_ADLER32                        1
#define ENABLED_CRC32                          1

// just to make sure SHARK and such are disabled if we don't
// have WORD64 or some version thereof...

// test if word64 is available for SHARK, SHA-384, SHA-512 and Tiger.

#if defined(__GNUC__) || defined(__MWERKS__) || defined(_MSC_VER) || defined(__BCPLUSPLUS__)
#define WORD64_AVAILABLE
#else
#undef ENABLED_CAMELLIA
#undef ENABLED_SHARK
#undef ENABLED_SHA384
#undef ENABLED_SHA512
#undef ENABLED_SHA384_HMAC
#undef ENABLED_SHA512_HMAC
#undef ENABLED_TIGER
#undef ENABLED_TIGER_HMAC
#undef ENABLED_WHIRLPOOL
#undef ENABLED_WHIRLPOOL_HMAC

#define ENABLED_CAMELLIA 0
#define ENABLED_SHARK 0
#define ENABLED_SHA384 0
#define ENABLED_SHA512 0
#define ENABLED_SHA384_HMAC 0
#define ENABLED_SHA512_HMAC 0
#define ENABLED_TIGER 0
#define ENABLED_TIGER_HMAC 0
#define ENABLED_WHIRLPOOL 0
#define ENABLED_WHIRLPOOL_HMAC 0
#endif

#endif
