QCryptographicHash: share more code between switch cases

Now that calling hashLengthInternal() is cheap, use it to factor
common code in switch statements. For sha3, that would have been
possible before, too. Reason for duplicating the case bodies is
unclear.

Change-Id: I281617546e0b3e701315eee2f10df8d26ada92ae
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
bb10
Marc Mutz 2021-07-06 16:16:06 +02:00
parent e9fffbaf81
commit 28fbed2f5c
1 changed files with 8 additions and 32 deletions

View File

@ -480,16 +480,10 @@ void QCryptographicHashPrivate::addData(QByteArrayView bytes) noexcept
break;
case QCryptographicHash::RealSha3_224:
case QCryptographicHash::Keccak_224:
sha3Update(&sha3Context, reinterpret_cast<const BitSequence *>(data), uint64_t(length) * 8);
break;
case QCryptographicHash::RealSha3_256:
case QCryptographicHash::Keccak_256:
sha3Update(&sha3Context, reinterpret_cast<const BitSequence *>(data), uint64_t(length) * 8);
break;
case QCryptographicHash::RealSha3_384:
case QCryptographicHash::Keccak_384:
sha3Update(&sha3Context, reinterpret_cast<const BitSequence *>(data), uint64_t(length) * 8);
break;
case QCryptographicHash::RealSha3_512:
case QCryptographicHash::Keccak_512:
sha3Update(&sha3Context, reinterpret_cast<const BitSequence *>(data), uint64_t(length) * 8);
@ -600,36 +594,18 @@ QByteArray QCryptographicHashPrivate::finalize()
SHA512Result(&copy, reinterpret_cast<unsigned char *>(result.data()));
break;
}
case QCryptographicHash::RealSha3_224: {
sha3Finish(224, QCryptographicHashPrivate::Sha3Variant::Sha3);
break;
}
case QCryptographicHash::RealSha3_256: {
sha3Finish(256, QCryptographicHashPrivate::Sha3Variant::Sha3);
break;
}
case QCryptographicHash::RealSha3_384: {
sha3Finish(384, QCryptographicHashPrivate::Sha3Variant::Sha3);
break;
}
case QCryptographicHash::RealSha3_224:
case QCryptographicHash::RealSha3_256:
case QCryptographicHash::RealSha3_384:
case QCryptographicHash::RealSha3_512: {
sha3Finish(512, QCryptographicHashPrivate::Sha3Variant::Sha3);
break;
}
case QCryptographicHash::Keccak_224: {
sha3Finish(224, QCryptographicHashPrivate::Sha3Variant::Keccak);
break;
}
case QCryptographicHash::Keccak_256: {
sha3Finish(256, QCryptographicHashPrivate::Sha3Variant::Keccak);
break;
}
case QCryptographicHash::Keccak_384: {
sha3Finish(384, QCryptographicHashPrivate::Sha3Variant::Keccak);
sha3Finish(8 * hashLengthInternal(method), Sha3Variant::Sha3);
break;
}
case QCryptographicHash::Keccak_224:
case QCryptographicHash::Keccak_256:
case QCryptographicHash::Keccak_384:
case QCryptographicHash::Keccak_512: {
sha3Finish(512, QCryptographicHashPrivate::Sha3Variant::Keccak);
sha3Finish(8 * hashLengthInternal(method), Sha3Variant::Keccak);
break;
}
case QCryptographicHash::Blake2b_160: