Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members

cryptopp_config.h

00001 /* cryptopp_config.h.  Generated by configure.  */
00002 /* cryptopp_config.h.in.  Generated from configure.in by autoheader.  */
00003 
00004 
00005 #ifndef CRYPTOPP_CONFIG_H
00006 #define CRYPTOPP_CONFIG_H
00007 
00008 /* Save PACKAGE_* macro values to prevent conflicts when linking
00009    Crypto++ to other code */
00010 
00011 #define _PACKAGE_BUGREPORT      PACKAGE_BUGREPORT
00012 #define _PACKAGE_NAME           PACKAGE_NAME
00013 #define _PACKAGE_STRING         PACKAGE_STRING
00014 #define _PACKAGE_TARNAME        PACKAGE_TARNAME
00015 #define _PACKAGE_VERSION        PACKAGE_VERSION
00016 
00017 
00018 /* Define to 1 if you have the <dlfcn.h> header file. */
00019 #define HAVE_DLFCN_H 1
00020 
00021 /* Define to 1 if you have the <inttypes.h> header file. */
00022 #define HAVE_INTTYPES_H 1
00023 
00024 /* Define to 1 if you have the <memory.h> header file. */
00025 #define HAVE_MEMORY_H 1
00026 
00027 /* Define to 1 if you have the <stdint.h> header file. */
00028 #define HAVE_STDINT_H 1
00029 
00030 /* Define to 1 if you have the <stdlib.h> header file. */
00031 #define HAVE_STDLIB_H 1
00032 
00033 /* Define to 1 if you have the <strings.h> header file. */
00034 #define HAVE_STRINGS_H 1
00035 
00036 /* Define to 1 if you have the <string.h> header file. */
00037 #define HAVE_STRING_H 1
00038 
00039 /* Define to 1 if you have the <sys/stat.h> header file. */
00040 #define HAVE_SYS_STAT_H 1
00041 
00042 /* Define to 1 if you have the <sys/types.h> header file. */
00043 #define HAVE_SYS_TYPES_H 1
00044 
00045 /* Define to 1 if you have the <unistd.h> header file. */
00046 #define HAVE_UNISTD_H 1
00047 
00048 /* Define to the address where bug reports for this package should be sent. */
00049 #define PACKAGE_BUGREPORT ""
00050 
00051 /* Define to the full name of this package. */
00052 #define PACKAGE_NAME "crypto++"
00053 
00054 /* Define to the full name and version of this package. */
00055 #define PACKAGE_STRING "crypto++ 5.1"
00056 
00057 /* Define to the one symbol short name of this package. */
00058 #define PACKAGE_TARNAME "crypto--"
00059 
00060 /* Define to the version of this package. */
00061 #define PACKAGE_VERSION "5.1"
00062 
00063 /* Define to 1 if you have the ANSI C header files. */
00064 #define STDC_HEADERS 1
00065 
00066 /* Define to 1 if your processor stores words with the most significant byte
00067    first (like Motorola and SPARC, unlike Intel and VAX). */
00068 /* #undef WORDS_BIGENDIAN */
00069 
00070 
00071 
00072 #ifndef CRYPTOPP_BUILD
00073 
00074 /* Restore PACKAGE_* macro values to prevent conflicts when linking
00075    Crypto++ to other code */
00076 
00077 #define PACKAGE_BUGREPORT ""
00078 #define PACKAGE_NAME "crypto++"
00079 #define PACKAGE_STRING "crypto++ 5.1"
00080 #define PACKAGE_TARNAME "crypto--"
00081 #define PACKAGE_VERSION "5.1"
00082 #define PACKAGE_BUGREPORT ""
00083 #define PACKAGE_NAME "crypto++"
00084 #define PACKAGE_STRING "crypto++ 5.1"
00085 #define PACKAGE_TARNAME "crypto--"
00086 #define PACKAGE_VERSION "5.1"
00087 
00088 #endif
00089 
00090 // ***************** Important Settings ********************
00091 
00092 #ifdef WORDS_BIGENDIAN
00093 #  define IS_BIG_ENDIAN
00094 #else
00095 // define this if running on a big-endian CPU
00096 #  if !defined(IS_LITTLE_ENDIAN) && (defined(__BIG_ENDIAN__) || defined(__sparc) || defined(__sparc__) || defined(__hppa__) || defined(__PPC__) || defined(__mips__) || (defined(__MWERKS__) && !defined(__INTEL__)))
00097 #       define IS_BIG_ENDIAN
00098 #  endif
00099 #endif
00100 
00101 // define this if running on a little-endian CPU
00102 // big endian will be assumed if IS_LITTLE_ENDIAN is not defined
00103 #ifndef IS_BIG_ENDIAN
00104 #       define IS_LITTLE_ENDIAN
00105 #endif
00106 
00107 // define this if you want to disable all OS-dependent features,
00108 // such as sockets and OS-provided random number generators
00109 // #define NO_OS_DEPENDENCE
00110 
00111 // Define this to use features provided by Microsoft's CryptoAPI.
00112 // Currently the only feature used is random number generation.
00113 // This macro will be ignored if NO_OS_DEPENDENCE is defined.
00114 #define USE_MS_CRYPTOAPI
00115 
00116 // Define this to 1 to enforce the requirement in FIPS 186-2 Change Notice 1 that only 1024 bit moduli be used
00117 #ifndef DSA_1024_BIT_MODULUS_ONLY
00118 #       define DSA_1024_BIT_MODULUS_ONLY 1
00119 #endif
00120 
00121 // ***************** Less Important Settings ***************
00122 
00123 // define this to retain (as much as possible) old deprecated function and class names
00124 // #define CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY
00125 
00126 #define GZIP_OS_CODE 0
00127 
00128 // Try this if your CPU has 256K internal cache or a slow multiply instruction
00129 // and you want a (possibly) faster IDEA implementation using log tables
00130 // #define IDEA_LARGECACHE
00131 
00132 // Try this if you have a large cache or your CPU is slow manipulating
00133 // individual bytes.
00134 // #define DIAMOND_USE_PERMTABLE
00135 
00136 // Define this if, for the linear congruential RNG, you want to use
00137 // the original constants as specified in S.K. Park and K.W. Miller's
00138 // CACM paper.
00139 // #define LCRNG_ORIGINAL_NUMBERS
00140 
00141 // choose which style of sockets to wrap (mostly useful for cygwin which has both)
00142 #define PREFER_BERKELEY_STYLE_SOCKETS
00143 // #define PREFER_WINDOWS_STYLE_SOCKETS
00144 
00145 // ***************** Important Settings Again ********************
00146 // But the defaults should be ok.
00147 
00148 // namespace support is now required
00149 #ifdef NO_NAMESPACE
00150 #       error namespace support is now required
00151 #endif
00152 
00153 // Define this to workaround a Microsoft CryptoAPI bug where
00154 // each call to CryptAcquireContext causes a 100 KB memory leak.
00155 // Defining this will cause Crypto++ to make only one call to CryptAcquireContext.
00156 #define WORKAROUND_MS_BUG_Q258000
00157 
00158 // Avoid putting "CryptoPP::" in front of everything in Doxygen output
00159 #ifdef CRYPTOPP_DOXYGEN_PROCESSING
00160 #       define CryptoPP
00161 #       define NAMESPACE_BEGIN(x)
00162 #       define NAMESPACE_END
00163 #else
00164 #       define NAMESPACE_BEGIN(x) namespace x {
00165 #       define NAMESPACE_END }
00166 #endif
00167 #define ANONYMOUS_NAMESPACE_BEGIN namespace {
00168 #define USING_NAMESPACE(x) using namespace x;
00169 #define DOCUMENTED_NAMESPACE_BEGIN(x) namespace x {
00170 #define DOCUMENTED_NAMESPACE_END }
00171 
00172 // What is the type of the third parameter to bind?
00173 // For Unix, the new standard is ::socklen_t (typically unsigned int), and the old standard is int.
00174 // Unfortunately there is no way to tell whether or not socklen_t is defined.
00175 // To work around this, TYPE_OF_SOCKLEN_T is a macro so that you can change it from the makefile.
00176 #ifndef TYPE_OF_SOCKLEN_T
00177 #       if defined(_WIN32) || defined(__CYGWIN__) || defined(__MACH__)
00178 #               define TYPE_OF_SOCKLEN_T int
00179 #       else
00180 #               define TYPE_OF_SOCKLEN_T ::socklen_t
00181 #       endif
00182 #endif
00183 
00184 #if defined(__CYGWIN__) && defined(PREFER_WINDOWS_STYLE_SOCKETS)
00185 #       define __USE_W32_SOCKETS
00186 #endif
00187 
00188 typedef unsigned char byte;     // moved outside namespace for Borland C++Builder 5
00189 
00190 NAMESPACE_BEGIN(CryptoPP)
00191 
00192 typedef unsigned short word16;
00193 #if defined(__alpha) && !defined(_MSC_VER)
00194         typedef unsigned int word32;
00195 #else
00196         typedef unsigned long word32;
00197 #endif
00198 
00199 #if defined(__GNUC__) || defined(__MWERKS__)
00200 #       define WORD64_AVAILABLE
00201         typedef unsigned long long word64;
00202 #       define W64LIT(x) x##LL
00203 #elif defined(_MSC_VER) || defined(__BCPLUSPLUS__)
00204 #       define WORD64_AVAILABLE
00205         typedef unsigned __int64 word64;
00206 #       define W64LIT(x) x##ui64
00207 #endif
00208 
00209 // defined this if your CPU is not 64-bit
00210 #if defined(WORD64_AVAILABLE) && !defined(__alpha)
00211 #       define SLOW_WORD64
00212 #endif
00213 
00214 // word should have the same size as your CPU registers
00215 // dword should be twice as big as word
00216 
00217 #if (defined(__GNUC__) && !defined(__alpha)) || defined(__MWERKS__)
00218         typedef unsigned long word;
00219         typedef unsigned long long dword;
00220 #elif defined(_MSC_VER) || defined(__BCPLUSPLUS__)
00221         typedef unsigned __int32 word;
00222         typedef unsigned __int64 dword;
00223 #else
00224         typedef unsigned int word;
00225         typedef unsigned long dword;
00226 #endif
00227 
00228 const unsigned int WORD_SIZE = sizeof(word);
00229 const unsigned int WORD_BITS = WORD_SIZE * 8;
00230 
00231 #define LOW_WORD(x) (word)(x)
00232 
00233 union dword_union
00234 {
00235         dword_union (const dword &dw) : dw(dw) {}
00236         dword dw;
00237         word w[2];
00238 };
00239 
00240 #ifdef IS_LITTLE_ENDIAN
00241 #       define HIGH_WORD(x) (dword_union(x).w[1])
00242 #else
00243 #       define HIGH_WORD(x) (dword_union(x).w[0])
00244 #endif
00245 
00246 // if the above HIGH_WORD macro doesn't work (if you are not sure, compile it
00247 // and run the validation tests), try this:
00248 // #define HIGH_WORD(x) (word)((x)>>WORD_BITS)
00249 
00250 #if defined(_MSC_VER) || defined(__BCPLUSPLUS__)
00251 #       define INTEL_INTRINSICS
00252 #       define FAST_ROTATE
00253 #elif defined(__MWERKS__) && TARGET_CPU_PPC
00254 #       define PPC_INTRINSICS
00255 #       define FAST_ROTATE
00256 #elif defined(__GNUC__) && defined(__i386__)
00257         // GCC does peephole optimizations which should result in using rotate instructions
00258 #       define FAST_ROTATE
00259 #endif
00260 
00261 NAMESPACE_END
00262 
00263 // VC60 workaround: it doesn't allow typename in some places
00264 #if defined(_MSC_VER) && (_MSC_VER < 1300)
00265 #define CPP_TYPENAME
00266 #else
00267 #define CPP_TYPENAME typename
00268 #endif
00269 
00270 #ifdef _MSC_VER
00271         // 4250: dominance
00272         // 4660: explicitly instantiating a class that's already implicitly instantiated
00273         // 4661: no suitable definition provided for explicit template instantiation request
00274         // 4786: identifer was truncated in debug information
00275         // 4355: 'this' : used in base member initializer list
00276 #       pragma warning(disable: 4250 4660 4661 4786 4355)
00277 #endif
00278 
00279 // ***************** determine availability of OS features ********************
00280 
00281 #ifndef NO_OS_DEPENDENCE
00282 
00283 #if defined(_WIN32) || defined(__CYGWIN__)
00284 #define CRYPTOPP_WIN32_AVAILABLE
00285 #endif
00286 
00287 #if defined(__unix__) || defined(__MACH__)
00288 #define CRYPTOPP_UNIX_AVAILABLE
00289 #endif
00290 
00291 #if defined(WORD64_AVAILABLE) && (defined(CRYPTOPP_WIN32_AVAILABLE) || defined(CRYPTOPP_UNIX_AVAILABLE) || defined(macintosh))
00292 #       define HIGHRES_TIMER_AVAILABLE
00293 #endif
00294 
00295 #ifdef CRYPTOPP_UNIX_AVAILABLE
00296 #       define HAS_BERKELEY_STYLE_SOCKETS
00297 #endif
00298 
00299 #ifdef CRYPTOPP_WIN32_AVAILABLE
00300 #       define HAS_WINDOWS_STYLE_SOCKETS
00301 #endif
00302 
00303 #if defined(HIGHRES_TIMER_AVAILABLE) && (defined(HAS_BERKELEY_STYLE_SOCKETS) || defined(HAS_WINDOWS_STYLE_SOCKETS))
00304 #       define SOCKETS_AVAILABLE
00305 #endif
00306 
00307 #if defined(HAS_WINDOWS_STYLE_SOCKETS) && (!defined(HAS_BERKELEY_STYLE_SOCKETS) || defined(PREFER_WINDOWS_STYLE_SOCKETS))
00308 #       define USE_WINDOWS_STYLE_SOCKETS
00309 #else
00310 #       define USE_BERKELEY_STYLE_SOCKETS
00311 #endif
00312 
00313 #if defined(CRYPTOPP_WIN32_AVAILABLE) && !defined(USE_BERKELEY_STYLE_SOCKETS)
00314 #       define WINDOWS_PIPES_AVAILABLE
00315 #endif
00316 
00317 #if defined(CRYPTOPP_WIN32_AVAILABLE) && defined(USE_MS_CRYPTOAPI)
00318 #       define NONBLOCKING_RNG_AVAILABLE
00319 #       define OS_RNG_AVAILABLE
00320 #endif
00321 
00322 #ifdef CRYPTOPP_UNIX_AVAILABLE
00323 #       define NONBLOCKING_RNG_AVAILABLE
00324 #       define BLOCKING_RNG_AVAILABLE
00325 #       define OS_RNG_AVAILABLE
00326 #       define HAS_PTHREADS
00327 #       define THREADS_AVAILABLE
00328 #endif
00329 
00330 #ifdef CRYPTOPP_WIN32_AVAILABLE
00331 #       define HAS_WINTHREADS
00332 #       define THREADS_AVAILABLE
00333 #endif
00334 
00335 #endif  // NO_OS_DEPENDENCE
00336 
00337 #endif
00338 

Generated on Sun Mar 14 20:44:25 2004 for Crypto++ by doxygen 1.3.6-20040222