diff --git a/algparam.h b/algparam.h index 80bbbc64..5728cce2 100644 --- a/algparam.h +++ b/algparam.h @@ -373,7 +373,7 @@ protected: member_ptr & Next() const {return const_cast(this)->Next();} bool m_constructed, m_defaultThrowIfNotUsed; - char m_first[sizeof(AlgorithmParametersBase) + 16]; + size_t m_first[(sizeof(AlgorithmParametersBase) + 19)/sizeof(size_t)]; }; //! Create an object that implements NameValuePairs for passing parameters diff --git a/rijndael.cpp b/rijndael.cpp index 05c403ac..4f40285d 100644 --- a/rijndael.cpp +++ b/rijndael.cpp @@ -675,6 +675,8 @@ void Rijndael_Enc_AdvancedProcessBlocks(void *locals, const word32 *k); } #endif +#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE || defined(CRYPTOPP_X64_MASM_AVAILABLE) + static inline bool AliasedWithTable(const byte *begin, const byte *end) { size_t s0 = size_t(begin)%4096, s1 = size_t(end)%4096; @@ -746,9 +748,11 @@ size_t Rijndael::Enc::AdvancedProcessBlocks(const byte *inBlocks, const byte *xo return BlockTransformation::AdvancedProcessBlocks(inBlocks, xorBlocks, outBlocks, length, flags); } +#endif + void Rijndael::Enc::ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const { -#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE +#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE || defined(CRYPTOPP_X64_MASM_AVAILABLE) if (HasSSE2()) { Rijndael::Enc::AdvancedProcessBlocks(inBlock, xorBlock, outBlock, 16, 0);