From b53842bcdcdfbbfc93d749e1471e8442ab704cfd Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Sun, 24 Jun 2018 01:22:37 -0400 Subject: [PATCH] Fix CRYPTOPP_DISABLE_ASM build --- cham.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/cham.cpp b/cham.cpp index 9ae866d6..15298bbe 100644 --- a/cham.cpp +++ b/cham.cpp @@ -97,6 +97,7 @@ ANONYMOUS_NAMESPACE_END NAMESPACE_BEGIN(CryptoPP) #if CRYPTOPP_CHAM_ADVANCED_PROCESS_BLOCKS +# if (CRYPTOPP_SSSE3_AVAILABLE) extern size_t CHAM64_Enc_AdvancedProcessBlocks_SSSE3(const word16* subKeys, size_t rounds, const byte *inBlocks, const byte *xorBlocks, byte *outBlocks, size_t length, word32 flags); @@ -108,7 +109,8 @@ extern size_t CHAM128_Enc_AdvancedProcessBlocks_SSSE3(const word32* subKeys, siz extern size_t CHAM128_Dec_AdvancedProcessBlocks_SSSE3(const word32* subKeys, size_t rounds, const byte *inBlocks, const byte *xorBlocks, byte *outBlocks, size_t length, word32 flags); -#endif +# endif // CRYPTOPP_SSSE3_AVAILABLE +#endif // CRYPTOPP_CHAM_ADVANCED_PROCESS_BLOCKS void CHAM64::Base::UncheckedSetKey(const byte *userKey, unsigned int keyLength, const NameValuePairs ¶ms) { @@ -318,42 +320,50 @@ void CHAM128::Dec::ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, size_t CHAM64::Enc::AdvancedProcessBlocks(const byte *inBlocks, const byte *xorBlocks, byte *outBlocks, size_t length, word32 flags) const { +# if (CRYPTOPP_SSSE3_AVAILABLE) if (HasSSSE3()) { return CHAM64_Enc_AdvancedProcessBlocks_SSSE3(m_rk, 80, inBlocks, xorBlocks, outBlocks, length, flags); } +# endif // CRYPTOPP_SSSE3_AVAILABLE return BlockTransformation::AdvancedProcessBlocks(inBlocks, xorBlocks, outBlocks, length, flags); } size_t CHAM64::Dec::AdvancedProcessBlocks(const byte *inBlocks, const byte *xorBlocks, byte *outBlocks, size_t length, word32 flags) const { +# if (CRYPTOPP_SSSE3_AVAILABLE) if (HasSSSE3()) { return CHAM64_Dec_AdvancedProcessBlocks_SSSE3(m_rk, 80, inBlocks, xorBlocks, outBlocks, length, flags); } +# endif // CRYPTOPP_SSSE3_AVAILABLE return BlockTransformation::AdvancedProcessBlocks(inBlocks, xorBlocks, outBlocks, length, flags); } size_t CHAM128::Enc::AdvancedProcessBlocks(const byte *inBlocks, const byte *xorBlocks, byte *outBlocks, size_t length, word32 flags) const { +# if (CRYPTOPP_SSSE3_AVAILABLE) if (HasSSSE3()) { const size_t rounds = (m_kw == 4 ? 80 : 96); return CHAM128_Enc_AdvancedProcessBlocks_SSSE3(m_rk, rounds, inBlocks, xorBlocks, outBlocks, length, flags); } +# endif // CRYPTOPP_SSSE3_AVAILABLE return BlockTransformation::AdvancedProcessBlocks(inBlocks, xorBlocks, outBlocks, length, flags); } size_t CHAM128::Dec::AdvancedProcessBlocks(const byte *inBlocks, const byte *xorBlocks, byte *outBlocks, size_t length, word32 flags) const { +# if (CRYPTOPP_SSSE3_AVAILABLE) if (HasSSSE3()) { const size_t rounds = (m_kw == 4 ? 80 : 96); return CHAM128_Dec_AdvancedProcessBlocks_SSSE3(m_rk, rounds, inBlocks, xorBlocks, outBlocks, length, flags); } +# endif // CRYPTOPP_SSSE3_AVAILABLE return BlockTransformation::AdvancedProcessBlocks(inBlocks, xorBlocks, outBlocks, length, flags); } #endif // CRYPTOPP_CHAM_ADVANCED_PROCESS_BLOCKS