From c4aaf081f9370e473805fbd15ba8e20a479467a2 Mon Sep 17 00:00:00 2001 From: Crayon2000 Date: Sun, 10 Jan 2016 22:39:01 -0500 Subject: [PATCH] The Crypto++ library can now be compiled with C++Builder Two macro were causing compiler problems with bcc32 [bcc32 Error] seckey.h(83): E2313 Constant expression required and [bcc32 Error] seckey.h(194): E2313 Constant expression required --- misc.h | 2 +- seckey.h | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/misc.h b/misc.h index 090b2972..2f165e3e 100644 --- a/misc.h +++ b/misc.h @@ -1,4 +1,4 @@ -// misc.h - written and placed in the public domain by Wei Dai +// misc.h - written and placed in the public domain by Wei Dai //! \file misc.h //! \brief Utility functions for the Crypto++ library. diff --git a/seckey.h b/seckey.h index f8bdaeda..01176913 100644 --- a/seckey.h +++ b/seckey.h @@ -80,12 +80,15 @@ protected: //! \throws InvalidRounds if the number of rounds are invalid inline void ThrowIfInvalidRounds(int rounds, const Algorithm *alg) { -#if (M==INT_MAX) // Coverity and result_independent_of_operands +#if defined(__BORLANDC__) + if (rounds < MIN_ROUNDS || rounds > MAX_ROUNDS) + throw InvalidRounds(alg ? alg->AlgorithmName() : std::string("VariableRounds"), rounds); +#elif (M==INT_MAX) // Coverity and result_independent_of_operands if (rounds < MIN_ROUNDS) throw InvalidRounds(alg ? alg->AlgorithmName() : "VariableRounds", rounds); #else if (rounds < MIN_ROUNDS || rounds > MAX_ROUNDS) - throw InvalidRounds(alg ? alg->AlgorithmName() : std::string("VariableRounds"), rounds); + throw InvalidRounds(alg ? alg->AlgorithmName() : "VariableRounds", rounds); #endif } @@ -191,10 +194,12 @@ public: //! \details keylength is provided in bytes, not bits. static size_t CRYPTOPP_API StaticGetValidKeyLength(size_t keylength) { +#if !defined(__BORLANDC__) #if MIN_KEYLENGTH > 0 if (keylength < (size_t)MIN_KEYLENGTH) return MIN_KEYLENGTH; else +#endif #endif if (keylength > (size_t)MAX_KEYLENGTH) return (size_t)MAX_KEYLENGTH;