From 443516dafa6b2021b69cf53940db0aa852943d4c Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Fri, 14 Oct 2022 23:49:19 +0300 Subject: [PATCH] KAT hash result getter optimization Signed-off-by: Ivailo Monev --- src/network/kernel/qcryptographichash.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/network/kernel/qcryptographichash.cpp b/src/network/kernel/qcryptographichash.cpp index 4af6c1f77..68d98f43e 100644 --- a/src/network/kernel/qcryptographichash.cpp +++ b/src/network/kernel/qcryptographichash.cpp @@ -82,13 +82,17 @@ void QKatHash::update(const char *data, const int length) QByteArray QKatHash::result() const { - XXH128_canonical_t xxh3canonical; - XXH128_canonicalFromHash(&xxh3canonical, XXH3_128bits_digest(m_xxh3)); - - XXH128_canonical_t xxh3canonical2; - XXH128_canonicalFromHash(&xxh3canonical2, XXH3_128bits_digest(m_xxh32)); - - return (QByteArray(reinterpret_cast(xxh3canonical.digest), xxh3len) + QByteArray(reinterpret_cast(xxh3canonical2.digest), xxh3len)); + QByteArray result(xxh3len * 2, char(0)); + char* resultdata = result.data(); + XXH128_canonicalFromHash( + reinterpret_cast(resultdata), + XXH3_128bits_digest(m_xxh3) + ); + XXH128_canonicalFromHash( + reinterpret_cast(resultdata + xxh3len), + XXH3_128bits_digest(m_xxh32) + ); + return result; } class QCryptographicHashPrivate