summaryrefslogtreecommitdiffstats
path: root/src/corelib/tools
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-08-13 14:14:00 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-08-23 08:52:23 +0200
commit33031020e1bd35b52b91aea0b899756c59bf62e6 (patch)
treeb3925d4874fbe870f404f344c240491e947b4553 /src/corelib/tools
parent55d0bcaf92cb5f155e51e336f5367e97101fa2c5 (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')
-rw-r--r--src/corelib/tools/qhash.cpp4
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);