Likely fix for some alignment issues on ARM.

This commit is contained in:
Adam Ierymenko 2020-11-25 14:28:41 -05:00
parent bc4bd29488
commit 9d66d876f4
No known key found for this signature in database
GPG key ID: C8877CF2D7A5D7F3
3 changed files with 20 additions and 26 deletions

View file

@ -149,22 +149,12 @@ void AES::GMAC::update(const void *const data, unsigned int len) noexcept
}
}
if (likely(((uintptr_t)in & 7U) == 0U)) {
while (len >= 16) {
y0 ^= *reinterpret_cast<const uint64_t *>(in);
y1 ^= *reinterpret_cast<const uint64_t *>(in + 8);
in += 16;
s_gfmul(h0, h1, y0, y1);
len -= 16;
}
} else {
while (len >= 16) {
y0 ^= Utils::loadMachineEndian< uint64_t >(in);
y1 ^= Utils::loadMachineEndian< uint64_t >(in + 8);
in += 16;
s_gfmul(h0, h1, y0, y1);
len -= 16;
}
while (len >= 16) {
y0 ^= Utils::loadMachineEndian< uint64_t >(in);
y1 ^= Utils::loadMachineEndian< uint64_t >(in + 8);
in += 16;
s_gfmul(h0, h1, y0, y1);
len -= 16;
}
_y[0] = y0;