Revert "Avoid extra ByteReverse"

This reverts commit 3b56ba118f. It broke Tiger and SEAL. Arg...
pull/242/merge
Jeffrey Walton 2017-05-25 06:46:40 -04:00
parent b447a7bf15
commit bd7aa155a6
2 changed files with 5 additions and 8 deletions

View File

@ -83,14 +83,11 @@ template <class T, class BASE> byte * IteratedHashBase<T, BASE>::CreateUpdateSpa
template <class T, class BASE> size_t IteratedHashBase<T, BASE>::HashMultipleBlocks(const T *input, size_t length) template <class T, class BASE> size_t IteratedHashBase<T, BASE>::HashMultipleBlocks(const T *input, size_t length)
{ {
#if CRYPTOPP_BOOL_SSE_SHA_INTRINSICS_AVAILABLE // Hardware based SHA1 and SHA256 correct blocks themselves due to hardware requirements.
// SHA-1 and SHA-256 only // For Intel, SHA1 will effectively call ByteReverse(). SHA256 formats data to Intel
static const bool noReverse = HasSHA() && this->BlockSize() <= 64; // requirements, which means eight words ABCD EFGH are transformed to ABEF CDGH.
#else
const bool noReverse = NativeByteOrderIs(this->GetByteOrder());
#endif
unsigned int blockSize = this->BlockSize(); unsigned int blockSize = this->BlockSize();
bool noReverse = NativeByteOrderIs(this->GetByteOrder());
T* dataBuf = this->DataBuf(); T* dataBuf = this->DataBuf();
do do
{ {

View File

@ -112,7 +112,7 @@ static void SHA1_SSE_SHA_Transform(word32 *state, const word32 *data)
ABCD = _mm_loadu_si128((__m128i*) state); ABCD = _mm_loadu_si128((__m128i*) state);
E0 = _mm_set_epi32(state[4], 0, 0, 0); E0 = _mm_set_epi32(state[4], 0, 0, 0);
ABCD = _mm_shuffle_epi32(ABCD, 0x1B); ABCD = _mm_shuffle_epi32(ABCD, 0x1B);
MASK = _mm_set_epi8(0,1,2,3, 4,5,6,7, 8,9,10,11, 12,13,14,15); MASK = _mm_set_epi8(3,2,1,0, 7,6,5,4, 11,10,9,8, 15,14,13,12);
// Save current hash // Save current hash
ABCD_SAVE = ABCD; ABCD_SAVE = ABCD;