diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-08-13 14:14:00 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-08-23 08:52:23 +0200 |
commit | 33031020e1bd35b52b91aea0b899756c59bf62e6 (patch) | |
tree | b3925d4874fbe870f404f344c240491e947b4553 /src/corelib/tools/qhash.cpp | |
parent | 55d0bcaf92cb5f155e51e336f5367e97101fa2c5 (diff) |
Fix mistake in AESHASH algorithm
The read data wasn't encoded into the state correctly.
Change-Id: Ib0a3b50bfeb56968de5c5e8353b28383cb586271
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/tools/qhash.cpp')
-rw-r--r-- | src/corelib/tools/qhash.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/corelib/tools/qhash.cpp b/src/corelib/tools/qhash.cpp index dfcad8684a..7c58be0f84 100644 --- a/src/corelib/tools/qhash.cpp +++ b/src/corelib/tools/qhash.cpp @@ -449,8 +449,8 @@ static size_t aeshash(const uchar *p, size_t len, size_t seed) noexcept while (src < srcend) { __m128i data0 = _mm_loadu_si128(src); __m128i data1 = _mm_loadu_si128(src + 1); - data0 = _mm_xor_si128(data0, state0); - data1 = _mm_xor_si128(data1, state1); + state0 = _mm_xor_si128(data0, state0); + state1 = _mm_xor_si128(data1, state1); state0 = _mm_aesenc_si128(state0, state0); state1 = _mm_aesenc_si128(state1, state1); state0 = _mm_aesenc_si128(state0, state0); |