summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2022-09-10 20:23:14 +0200
committerLinus Jahn <lnj@kaidan.im>2022-09-12 20:47:24 +0200
commitcd37a773ca0ceb3718875295bd244fb462893a0d (patch)
treed5ebdcee44c409c45a3aae282a3eda47aada8076
parent358248b4950131711ae408da9aa30d41c5143e4f (diff)
QCryptographicHash: Add getter for algorithm()
This can be helpful when you calculate multiple hashes, store them in a vector and you want to know which result belongs to which algorithm. [ChangeLog][QtCore][QCryptographicHash] Added getter algorithm(). Change-Id: Ifcf78536f215619a6e2e3035a95598327d0ed733 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
-rw-r--r--src/corelib/tools/qcryptographichash.cpp10
-rw-r--r--src/corelib/tools/qcryptographichash.h1
-rw-r--r--tests/auto/corelib/tools/qcryptographichash/tst_qcryptographichash.cpp2
3 files changed, 13 insertions, 0 deletions
diff --git a/src/corelib/tools/qcryptographichash.cpp b/src/corelib/tools/qcryptographichash.cpp
index 3f6075f2aa..b9984f0b01 100644
--- a/src/corelib/tools/qcryptographichash.cpp
+++ b/src/corelib/tools/qcryptographichash.cpp
@@ -364,6 +364,16 @@ void QCryptographicHash::reset() noexcept
d->reset();
}
+/*!
+ Returns the algorithm used to generate the cryptographic hash.
+
+ \since 6.5
+*/
+QCryptographicHash::Algorithm QCryptographicHash::algorithm() const noexcept
+{
+ return d->method;
+}
+
void QCryptographicHashPrivate::reset() noexcept
{
switch (method) {
diff --git a/src/corelib/tools/qcryptographichash.h b/src/corelib/tools/qcryptographichash.h
index 94fc82783b..5f9104fe9f 100644
--- a/src/corelib/tools/qcryptographichash.h
+++ b/src/corelib/tools/qcryptographichash.h
@@ -71,6 +71,7 @@ public:
void swap(QCryptographicHash &other) noexcept { qt_ptr_swap(d, other.d); }
void reset() noexcept;
+ [[nodiscard]] Algorithm algorithm() const noexcept;
#if QT_DEPRECATED_SINCE(6, 4)
QT_DEPRECATED_VERSION_X_6_4("Use the QByteArrayView overload instead")
diff --git a/tests/auto/corelib/tools/qcryptographichash/tst_qcryptographichash.cpp b/tests/auto/corelib/tools/qcryptographichash/tst_qcryptographichash.cpp
index 5445963be8..2151c69323 100644
--- a/tests/auto/corelib/tools/qcryptographichash/tst_qcryptographichash.cpp
+++ b/tests/auto/corelib/tools/qcryptographichash/tst_qcryptographichash.cpp
@@ -51,6 +51,8 @@ void tst_QCryptographicHash::repeated_result()
QCryptographicHash::Algorithm _algo = QCryptographicHash::Algorithm(algo);
QCryptographicHash hash(_algo);
+ QCOMPARE_EQ(hash.algorithm(), _algo);
+
QFETCH(QByteArray, first);
hash.addData(first);