fix compile with GCC 4.4 and -march=i386

fix minor documentation issues
fix compile w/o GAS 2.19 or later
pull/2/head
weidai 2010-08-08 23:02:36 +00:00
parent 9d42a6f6de
commit 045d804f9b
7 changed files with 1019 additions and 490 deletions

1465
Doxyfile

File diff suppressed because it is too large Load Diff

View File

@ -30,6 +30,7 @@ ICC111_OR_LATER = $(shell $(CXX) --version 2>&1 | $(EGREP) -c "\(ICC\) ([2-9][0-
IS_SUN_CC = $(shell $(CXX) -V 2>&1 | $(EGREP) -c "CC: Sun") IS_SUN_CC = $(shell $(CXX) -V 2>&1 | $(EGREP) -c "CC: Sun")
GAS210_OR_LATER = $(shell echo "" | $(AS) -v 2>&1 | $(EGREP) -c "GNU assembler version (2\.[1-9][0-9]|[3-9])") GAS210_OR_LATER = $(shell echo "" | $(AS) -v 2>&1 | $(EGREP) -c "GNU assembler version (2\.[1-9][0-9]|[3-9])")
GAS217_OR_LATER = $(shell echo "" | $(AS) -v 2>&1 | $(EGREP) -c "GNU assembler version (2\.1[7-9]|2\.[2-9]|[3-9])") GAS217_OR_LATER = $(shell echo "" | $(AS) -v 2>&1 | $(EGREP) -c "GNU assembler version (2\.1[7-9]|2\.[2-9]|[3-9])")
GAS219_OR_LATER = $(shell echo "" | $(AS) -v 2>&1 | $(EGREP) -c "GNU assembler version (2\.19|2\.[2-9]|[3-9])")
ISMINGW = $(shell $(CXX) --version 2>&1 | $(EGREP) -c "mingw") ISMINGW = $(shell $(CXX) --version 2>&1 | $(EGREP) -c "mingw")
ifneq ($(GCC42_OR_LATER),0) ifneq ($(GCC42_OR_LATER),0)
@ -54,6 +55,10 @@ CXXFLAGS += -DCRYPTOPP_DISABLE_ASM
else else
ifeq ($(GAS217_OR_LATER),0) ifeq ($(GAS217_OR_LATER),0)
CXXFLAGS += -DCRYPTOPP_DISABLE_SSSE3 CXXFLAGS += -DCRYPTOPP_DISABLE_SSSE3
else
ifeq ($(GAS219_OR_LATER),0)
CXXFLAGS += -DCRYPTOPP_DISABLE_AESNI
endif
endif endif
ifeq ($(UNAME),SunOS) ifeq ($(UNAME),SunOS)
CXXFLAGS += -Wa,--divide # allow use of "/" operator CXXFLAGS += -Wa,--divide # allow use of "/" operator

View File

@ -289,7 +289,7 @@ NAMESPACE_END
#define CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE 0 #define CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE 0
#endif #endif
#if defined(CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE) && (CRYPTOPP_GCC_VERSION >= 40400 || _MSC_FULL_VER >= 150030729 || __INTEL_COMPILER >= 1110) #if !defined(CRYPTOPP_DISABLE_SSSE3) && !defined(CRYPTOPP_DISABLE_AESNI) && CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE && (CRYPTOPP_GCC_VERSION >= 40400 || _MSC_FULL_VER >= 150030729 || __INTEL_COMPILER >= 1110)
#define CRYPTOPP_BOOL_AESNI_INTRINSICS_AVAILABLE 1 #define CRYPTOPP_BOOL_AESNI_INTRINSICS_AVAILABLE 1
#else #else
#define CRYPTOPP_BOOL_AESNI_INTRINSICS_AVAILABLE 0 #define CRYPTOPP_BOOL_AESNI_INTRINSICS_AVAILABLE 0
@ -410,7 +410,7 @@ NAMESPACE_END
// ***************** DLL related ******************** // ***************** DLL related ********************
#ifdef CRYPTOPP_WIN32_AVAILABLE #if defined(CRYPTOPP_WIN32_AVAILABLE) && !defined(CRYPTOPP_DOXYGEN_PROCESSING)
#ifdef CRYPTOPP_EXPORTS #ifdef CRYPTOPP_EXPORTS
#define CRYPTOPP_IS_DLL #define CRYPTOPP_IS_DLL

View File

@ -19,7 +19,7 @@
<dt>Message Authentication Codes<dd> <dt>Message Authentication Codes<dd>
VMAC, HMAC, CBC_MAC, CMAC, DMAC, TTMAC, GCM (GMAC) VMAC, HMAC, CBC_MAC, CMAC, DMAC, TTMAC, GCM (GMAC)
<dt>Random Number Generators<dd> <dt>Random Number Generators<dd>
NullRNG(), LC_RNG, RandomPool, BlockingRng, NonblockingRng, AutoSeededRandomPool, AutoSeededX917RNG, DefaultAutoSeededRNG NullRNG(), LC_RNG, RandomPool, BlockingRng, NonblockingRng, AutoSeededRandomPool, AutoSeededX917RNG, #DefaultAutoSeededRNG
<dt>Password-based Cryptography<dd> <dt>Password-based Cryptography<dd>
PasswordBasedKeyDerivationFunction PasswordBasedKeyDerivationFunction
<dt>Public Key Cryptosystems<dd> <dt>Public Key Cryptosystems<dd>
@ -37,7 +37,7 @@
<dt>Compression<dd> <dt>Compression<dd>
Deflator, Inflator, Gzip, Gunzip, ZlibCompressor, ZlibDecompressor Deflator, Inflator, Gzip, Gunzip, ZlibCompressor, ZlibDecompressor
<dt>Input Source Classes<dd> <dt>Input Source Classes<dd>
StringSource, ArraySource, FileSource, SocketSource, WindowsPipeSource, RandomNumberSource StringSource, #ArraySource, FileSource, SocketSource, WindowsPipeSource, RandomNumberSource
<dt>Output Sink Classes<dd> <dt>Output Sink Classes<dd>
StringSinkTemplate, ArraySink, FileSink, SocketSink, WindowsPipeSink, RandomNumberSink StringSinkTemplate, ArraySink, FileSink, SocketSink, WindowsPipeSink, RandomNumberSink
<dt>Filter Wrappers<dd> <dt>Filter Wrappers<dd>
@ -50,20 +50,20 @@
fips140.h fips140.h
</dl> </dl>
In the FIPS 140-2 validated DLL version of Crypto++, only the following implementation class are available. In the DLL version of Crypto++, only the following implementation class are available.
<dl> <dl>
<dt>Block Ciphers<dd> <dt>Block Ciphers<dd>
AES, DES_EDE2, DES_EDE3, SKIPJACK AES, DES_EDE2, DES_EDE3, SKIPJACK
<dt>Cipher Modes (replace template parameter BC with one of the block ciphers above)<dd> <dt>Cipher Modes (replace template parameter BC with one of the block ciphers above)<dd>
ECB_Mode\<BC\>, CTR_Mode\<BC\>, CBC_Mode\<BC\>, CFB_FIPS_Mode\<BC\>, OFB_Mode\<BC\> ECB_Mode\<BC\>, CTR_Mode\<BC\>, CBC_Mode\<BC\>, CFB_FIPS_Mode\<BC\>, OFB_Mode\<BC\>, GCM\<AES\>
<dt>Hash Functions<dd> <dt>Hash Functions<dd>
SHA1, SHA224, SHA256, SHA384, SHA512 SHA1, SHA224, SHA256, SHA384, SHA512
<dt>Public Key Signature Schemes (replace template parameter H with one of the hash functions above)<dd> <dt>Public Key Signature Schemes (replace template parameter H with one of the hash functions above)<dd>
RSASS\<PKCS1v15, H\>, RSASS\<PSS, H\>, RSASS_ISO\<H\>, RWSS\<P1363_EMSA2, H\>, DSA, ECDSA\<ECP, H\>, ECDSA\<EC2N, H\> RSASS\<PKCS1v15, H\>, RSASS\<PSS, H\>, RSASS_ISO\<H\>, RWSS\<P1363_EMSA2, H\>, DSA, ECDSA\<ECP, H\>, ECDSA\<EC2N, H\>
<dt>Message Authentication Codes (replace template parameter H with one of the hash functions above)<dd> <dt>Message Authentication Codes (replace template parameter H with one of the hash functions above)<dd>
HMAC\<H\>, CBC_MAC\<DES_EDE2\>, CBC_MAC\<DES_EDE3\> HMAC\<H\>, CBC_MAC\<DES_EDE2\>, CBC_MAC\<DES_EDE3\>, GCM\<AES\>
<dt>Random Number Generators<dd> <dt>Random Number Generators<dd>
DefaultAutoSeededRNG (AutoSeededX917RNG\<AES\>) #DefaultAutoSeededRNG (AutoSeededX917RNG\<AES\>)
<dt>Key Agreement<dd> <dt>Key Agreement<dd>
#DH #DH
<dt>Public Key Cryptosystems<dd> <dt>Public Key Cryptosystems<dd>
@ -470,9 +470,7 @@ public:
class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE StreamTransformation : public Algorithm class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE StreamTransformation : public Algorithm
{ {
public: public:
//! return a reference to this object, //! return a reference to this object, useful for passing a temporary object to a function that takes a non-const reference
/*! This function is useful for passing a temporary StreamTransformation object to a
function that takes a non-const reference. */
StreamTransformation& Ref() {return *this;} StreamTransformation& Ref() {return *this;}
//! returns block size, if input must be processed in blocks, otherwise 1 //! returns block size, if input must be processed in blocks, otherwise 1
@ -533,9 +531,7 @@ public:
class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE HashTransformation : public Algorithm class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE HashTransformation : public Algorithm
{ {
public: public:
//! return a reference to this object, //! return a reference to this object, useful for passing a temporary object to a function that takes a non-const reference
/*! This function is useful for passing a temporary HashTransformation object to a
function that takes a non-const reference. */
HashTransformation& Ref() {return *this;} HashTransformation& Ref() {return *this;}
//! process more input //! process more input
@ -780,9 +776,7 @@ public:
BufferedTransformation() : Algorithm(false) {} BufferedTransformation() : Algorithm(false) {}
//! return a reference to this object //! return a reference to this object, useful for passing a temporary object to a function that takes a non-const reference
/*! This function is useful for passing a temporary BufferedTransformation object to a
function that takes a non-const reference. */
BufferedTransformation& Ref() {return *this;} BufferedTransformation& Ref() {return *this;}
//! \name INPUT //! \name INPUT

View File

@ -1,6 +1,8 @@
#ifndef CRYPTOPP_FILTERS_H #ifndef CRYPTOPP_FILTERS_H
#define CRYPTOPP_FILTERS_H #define CRYPTOPP_FILTERS_H
//! \file
#include "simple.h" #include "simple.h"
#include "secblock.h" #include "secblock.h"
#include "misc.h" #include "misc.h"

View File

@ -1,6 +1,8 @@
#ifndef CRYPTOPP_OSRNG_H #ifndef CRYPTOPP_OSRNG_H
#define CRYPTOPP_OSRNG_H #define CRYPTOPP_OSRNG_H
//! \file
#include "config.h" #include "config.h"
#ifdef OS_RNG_AVAILABLE #ifdef OS_RNG_AVAILABLE
@ -140,6 +142,7 @@ void AutoSeededX917RNG<BLOCK_CIPHER>::Reseed(bool blocking, const byte *input, s
CRYPTOPP_DLL_TEMPLATE_CLASS AutoSeededX917RNG<AES>; CRYPTOPP_DLL_TEMPLATE_CLASS AutoSeededX917RNG<AES>;
//! this is AutoSeededX917RNG\<AES\> in FIPS mode, otherwise it's AutoSeededRandomPool
#if CRYPTOPP_ENABLE_COMPLIANCE_WITH_FIPS_140_2 #if CRYPTOPP_ENABLE_COMPLIANCE_WITH_FIPS_140_2
typedef AutoSeededX917RNG<AES> DefaultAutoSeededRNG; typedef AutoSeededX917RNG<AES> DefaultAutoSeededRNG;
#else #else

View File

@ -40,8 +40,8 @@ void Panama_SSE2_Pull(size_t count, word32 *state, word32 *z, const word32 *y);
#pragma warning(disable: 4731) // frame pointer register 'ebp' modified by inline assembly code #pragma warning(disable: 4731) // frame pointer register 'ebp' modified by inline assembly code
void CRYPTOPP_NOINLINE Panama_SSE2_Pull(size_t count, word32 *state, word32 *z, const word32 *y) void CRYPTOPP_NOINLINE Panama_SSE2_Pull(size_t count, word32 *state, word32 *z, const word32 *y)
{ {
#ifdef __GNUC__ #ifdef CRYPTOPP_GNU_STYLE_INLINE_ASSEMBLY
__asm__ __volatile__ asm __volatile__
( (
".intel_syntax noprefix;" ".intel_syntax noprefix;"
AS_PUSH_IF86( bx) AS_PUSH_IF86( bx)
@ -285,7 +285,7 @@ void CRYPTOPP_NOINLINE Panama_SSE2_Pull(size_t count, word32 *state, word32 *z,
#endif #endif
ASL(5) ASL(5)
#ifdef __GNUC__ #ifdef CRYPTOPP_GNU_STYLE_INLINE_ASSEMBLY
AS_POP_IF86( bx) AS_POP_IF86( bx)
".att_syntax prefix;" ".att_syntax prefix;"
: :