Long live QMessageAuthenticationCode::resultView()!
Use it in a few places. [ChangeLog][QtCore][QMessageAuthenticationCode] Added QCryptographicHash-style resultView(). Change-Id: I745d71f86f9c19c9a9aabb2021c6617775dab1cf Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
parent
7af39be052
commit
6990f23813
@ -1331,15 +1331,30 @@ bool QMessageAuthenticationCode::addData(QIODevice *device)
|
|||||||
return d->messageHash.addData(device);
|
return d->messageHash.addData(device);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\since 6.6
|
||||||
|
|
||||||
|
Returns the final hash value.
|
||||||
|
|
||||||
|
Note that the returned view remains valid only as long as the
|
||||||
|
QMessageAuthenticationCode object is not modified by other means.
|
||||||
|
|
||||||
|
\sa result()
|
||||||
|
*/
|
||||||
|
QByteArrayView QMessageAuthenticationCode::resultView() const noexcept
|
||||||
|
{
|
||||||
|
d->finalize();
|
||||||
|
return d->result.toByteArrayView();
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Returns the final authentication code.
|
Returns the final authentication code.
|
||||||
|
|
||||||
\sa QByteArray::toHex()
|
\sa resultView(), QByteArray::toHex()
|
||||||
*/
|
*/
|
||||||
QByteArray QMessageAuthenticationCode::result() const
|
QByteArray QMessageAuthenticationCode::result() const
|
||||||
{
|
{
|
||||||
d->finalize();
|
return resultView().toByteArray();
|
||||||
return d->result.toByteArrayView().toByteArray();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void QMessageAuthenticationCodePrivate::finalize()
|
void QMessageAuthenticationCodePrivate::finalize()
|
||||||
|
@ -28,6 +28,7 @@ public:
|
|||||||
void addData(const QByteArray &data);
|
void addData(const QByteArray &data);
|
||||||
bool addData(QIODevice *device);
|
bool addData(QIODevice *device);
|
||||||
|
|
||||||
|
QByteArrayView resultView() const noexcept;
|
||||||
QByteArray result() const;
|
QByteArray result() const;
|
||||||
|
|
||||||
static QByteArray hash(const QByteArray &message, const QByteArray &key,
|
static QByteArray hash(const QByteArray &message, const QByteArray &key,
|
||||||
|
@ -182,7 +182,7 @@ extern "C" int q_generate_cookie_callback(SSL *ssl, unsigned char *dst,
|
|||||||
|
|
||||||
QMessageAuthenticationCode hmac(dtls->hashAlgorithm, dtls->secret);
|
QMessageAuthenticationCode hmac(dtls->hashAlgorithm, dtls->secret);
|
||||||
hmac.addData(peerData);
|
hmac.addData(peerData);
|
||||||
const QByteArray cookie = hmac.result();
|
const QByteArrayView cookie = hmac.resultView();
|
||||||
Q_ASSERT(cookie.size() >= 0);
|
Q_ASSERT(cookie.size() >= 0);
|
||||||
// DTLS1_COOKIE_LENGTH is erroneously 256 bytes long, must be 255 - RFC 6347, 4.2.1.
|
// DTLS1_COOKIE_LENGTH is erroneously 256 bytes long, must be 255 - RFC 6347, 4.2.1.
|
||||||
*cookieLength = qMin(DTLS1_COOKIE_LENGTH - 1, cookie.size());
|
*cookieLength = qMin(DTLS1_COOKIE_LENGTH - 1, cookie.size());
|
||||||
|
@ -148,11 +148,11 @@ void tst_QMessageAuthenticationCode::result()
|
|||||||
QMessageAuthenticationCode mac(algo);
|
QMessageAuthenticationCode mac(algo);
|
||||||
mac.setKey(key);
|
mac.setKey(key);
|
||||||
mac.addData(message);
|
mac.addData(message);
|
||||||
QByteArray result = mac.result();
|
QByteArrayView resultView = mac.resultView();
|
||||||
|
|
||||||
QCOMPARE(result, code);
|
QCOMPARE(resultView, code);
|
||||||
|
|
||||||
result = QMessageAuthenticationCode::hash(message, key, algo);
|
const auto result = QMessageAuthenticationCode::hash(message, key, algo);
|
||||||
QCOMPARE(result, code);
|
QCOMPARE(result, code);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -178,7 +178,7 @@ void tst_QMessageAuthenticationCode::result_incremental()
|
|||||||
mac.setKey(key);
|
mac.setKey(key);
|
||||||
mac.addData(leftPart);
|
mac.addData(leftPart);
|
||||||
mac.addData(rightPart);
|
mac.addData(rightPart);
|
||||||
QByteArray result = mac.result();
|
QByteArrayView result = mac.resultView();
|
||||||
|
|
||||||
QCOMPARE(result, code);
|
QCOMPARE(result, code);
|
||||||
}
|
}
|
||||||
@ -200,7 +200,7 @@ void tst_QMessageAuthenticationCode::addData_overloads()
|
|||||||
QMessageAuthenticationCode mac(algo);
|
QMessageAuthenticationCode mac(algo);
|
||||||
mac.setKey(key);
|
mac.setKey(key);
|
||||||
mac.addData(message.constData(), message.size());
|
mac.addData(message.constData(), message.size());
|
||||||
QByteArray result = mac.result();
|
QByteArrayView result = mac.resultView();
|
||||||
|
|
||||||
QCOMPARE(result, code);
|
QCOMPARE(result, code);
|
||||||
}
|
}
|
||||||
@ -212,7 +212,7 @@ void tst_QMessageAuthenticationCode::addData_overloads()
|
|||||||
QMessageAuthenticationCode mac(algo);
|
QMessageAuthenticationCode mac(algo);
|
||||||
mac.setKey(key);
|
mac.setKey(key);
|
||||||
QVERIFY(mac.addData(&buffer));
|
QVERIFY(mac.addData(&buffer));
|
||||||
QByteArray result = mac.result();
|
QByteArrayView result = mac.resultView();
|
||||||
buffer.close();
|
buffer.close();
|
||||||
|
|
||||||
QCOMPARE(result, code);
|
QCOMPARE(result, code);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user