diff --git a/asn.h b/asn.h index 52a184c9..90809ef9 100644 --- a/asn.h +++ b/asn.h @@ -13,6 +13,13 @@ #include "queue.h" #include "misc.h" +// Issue 340 +#if CRYPTOPP_GCC_DIAGNOSTIC_AVAILABLE +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wconversion" +# pragma GCC diagnostic ignored "-Wsign-conversion" +#endif + NAMESPACE_BEGIN(CryptoPP) //! \brief ASN.1 types @@ -543,4 +550,9 @@ inline ::CryptoPP::OID operator+(const ::CryptoPP::OID &lhs, unsigned long rhs) NAMESPACE_END +// Issue 340 +#if CRYPTOPP_GCC_DIAGNOSTIC_AVAILABLE +# pragma GCC diagnostic pop +#endif + #endif diff --git a/cpu.h b/cpu.h index e42792ba..b41a0b62 100644 --- a/cpu.h +++ b/cpu.h @@ -9,6 +9,13 @@ #include "config.h" +// Issue 340 +#if CRYPTOPP_GCC_DIAGNOSTIC_AVAILABLE +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wconversion" +# pragma GCC diagnostic ignored "-Wsign-conversion" +#endif + // ARM32/ARM64 Headers #if (CRYPTOPP_BOOL_ARM32 || CRYPTOPP_BOOL_ARM64) # if defined(__GNUC__) @@ -602,4 +609,9 @@ inline int GetCacheLineSize() NAMESPACE_END +// Issue 340 +#if CRYPTOPP_GCC_DIAGNOSTIC_AVAILABLE +# pragma GCC diagnostic pop +#endif + #endif // CRYPTOPP_CPU_H diff --git a/cryptlib.cpp b/cryptlib.cpp index d58c71d5..3bd064ed 100644 --- a/cryptlib.cpp +++ b/cryptlib.cpp @@ -131,13 +131,13 @@ void SimpleKeyingInterface::ThrowIfInvalidIV(const byte *iv) size_t SimpleKeyingInterface::ThrowIfInvalidIVLength(int size) { if (size < 0) - return IVSize(); + return (size_t)IVSize(); else if ((size_t)size < MinIVLength()) throw InvalidArgument(GetAlgorithm().AlgorithmName() + ": IV length " + IntToString(size) + " is less than the minimum of " + IntToString(MinIVLength())); else if ((size_t)size > MaxIVLength()) throw InvalidArgument(GetAlgorithm().AlgorithmName() + ": IV length " + IntToString(size) + " exceeds the maximum of " + IntToString(MaxIVLength())); else - return size; + return (size_t)size; } const byte * SimpleKeyingInterface::GetIVAndThrowIfInvalid(const NameValuePairs ¶ms, size_t &size) @@ -298,7 +298,7 @@ byte RandomNumberGenerator::GenerateByte() word32 RandomNumberGenerator::GenerateWord32(word32 min, word32 max) { const word32 range = max-min; - const int maxBits = BitPrecision(range); + const unsigned int maxBits = BitPrecision(range); word32 value; @@ -721,6 +721,13 @@ size_t BufferedTransformation::PutWord32(word32 value, ByteOrder order, bool blo return ChannelPutWord32(DEFAULT_CHANNEL, value, order, blocking); } +// Issue 340 +#if CRYPTOPP_GCC_DIAGNOSTIC_AVAILABLE +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wconversion" +# pragma GCC diagnostic ignored "-Wsign-conversion" +#endif + size_t BufferedTransformation::PeekWord16(word16 &value, ByteOrder order) const { byte buf[2] = {0, 0}; @@ -747,6 +754,11 @@ size_t BufferedTransformation::PeekWord32(word32 &value, ByteOrder order) const return len; } +// Issue 340 +#if CRYPTOPP_GCC_DIAGNOSTIC_AVAILABLE +# pragma GCC diagnostic pop +#endif + size_t BufferedTransformation::GetWord16(word16 &value, ByteOrder order) { return (size_t)Skip(PeekWord16(value, order)); diff --git a/gf2n.cpp b/gf2n.cpp index 99380e13..2bc5331a 100644 --- a/gf2n.cpp +++ b/gf2n.cpp @@ -18,6 +18,12 @@ #include +// Issue 340 +#if CRYPTOPP_GCC_DIAGNOSTIC_AVAILABLE +# pragma GCC diagnostic ignored "-Wconversion" +# pragma GCC diagnostic ignored "-Wsign-conversion" +#endif + NAMESPACE_BEGIN(CryptoPP) PolynomialMod2::PolynomialMod2() diff --git a/integer.cpp b/integer.cpp index b24b7795..4dc9dfcb 100644 --- a/integer.cpp +++ b/integer.cpp @@ -13,6 +13,12 @@ # pragma GCC diagnostic ignored "-Wunused-but-set-variable" #endif +// Issue 340 +#if CRYPTOPP_GCC_DIAGNOSTIC_AVAILABLE +# pragma GCC diagnostic ignored "-Wconversion" +# pragma GCC diagnostic ignored "-Wsign-conversion" +#endif + #ifndef CRYPTOPP_IMPORTS #include "integer.h" diff --git a/misc.h b/misc.h index ccbb5db9..2793d06e 100644 --- a/misc.h +++ b/misc.h @@ -19,6 +19,13 @@ # endif #endif +// Issue 340 +#if CRYPTOPP_GCC_DIAGNOSTIC_AVAILABLE +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wconversion" +# pragma GCC diagnostic ignored "-Wsign-conversion" +#endif + #include "cryptlib.h" #include "stdcpp.h" #include "smartptr.h" @@ -2428,4 +2435,8 @@ NAMESPACE_END # pragma warning(pop) #endif +#if CRYPTOPP_GCC_DIAGNOSTIC_AVAILABLE +# pragma GCC diagnostic pop +#endif + #endif diff --git a/modes.h b/modes.h index d015259f..2a22024c 100644 --- a/modes.h +++ b/modes.h @@ -13,6 +13,13 @@ #include "argnames.h" #include "algparam.h" +// Issue 340 +#if CRYPTOPP_GCC_DIAGNOSTIC_AVAILABLE +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wconversion" +# pragma GCC diagnostic ignored "-Wsign-conversion" +#endif + NAMESPACE_BEGIN(CryptoPP) //! \class CipherModeDocumentation @@ -482,4 +489,9 @@ typedef CTR_Mode_ExternalCipher::Encryption CounterMode; NAMESPACE_END +// Issue 340 +#if CRYPTOPP_GCC_DIAGNOSTIC_AVAILABLE +# pragma GCC diagnostic pop +#endif + #endif diff --git a/seckey.h b/seckey.h index b512a3a2..92e38395 100644 --- a/seckey.h +++ b/seckey.h @@ -1,21 +1,27 @@ // seckey.h - written and placed in the public domain by Wei Dai -//! \file +//! \file seckey.h //! \brief Classes and functions for implementing secret key algorithms. #ifndef CRYPTOPP_SECKEY_H #define CRYPTOPP_SECKEY_H #include "config.h" +#include "cryptlib.h" +#include "misc.h" +#include "simple.h" #if CRYPTOPP_MSC_VERSION # pragma warning(push) # pragma warning(disable: 4189) #endif -#include "cryptlib.h" -#include "misc.h" -#include "simple.h" +// Issue 340 +#if CRYPTOPP_GCC_DIAGNOSTIC_AVAILABLE +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wconversion" +# pragma GCC diagnostic ignored "-Wsign-conversion" +#endif NAMESPACE_BEGIN(CryptoPP) @@ -442,4 +448,9 @@ NAMESPACE_END # pragma warning(pop) #endif +// Issue 340 +#if CRYPTOPP_GCC_DIAGNOSTIC_AVAILABLE +# pragma GCC diagnostic pop +#endif + #endif