![]() |
Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
|
\inmodule QtCore More...
#include <qmessageauthenticationcode.h>
Public Member Functions | |
QMessageAuthenticationCode (QCryptographicHash::Algorithm method, QByteArrayView key={}) | |
QMessageAuthenticationCode (QMessageAuthenticationCode &&other) noexcept | |
Move-constructs a new QMessageAuthenticationCode from other. | |
~QMessageAuthenticationCode () | |
Destroys the object. | |
void | swap (QMessageAuthenticationCode &other) noexcept |
Swaps message authentication code other with this message authentication code. | |
void | reset () noexcept |
Resets message data. | |
void | setKey (QByteArrayView key) noexcept |
Sets secret key. | |
void | addData (const char *data, qsizetype length) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Adds the first length chars of data to the message. | |
void | addData (QByteArrayView data) noexcept |
Adds data to the message. | |
bool | addData (QIODevice *device) |
Reads the data from the open QIODevice device until it ends and adds it to message. | |
QByteArrayView | resultView () const noexcept |
QByteArray | result () const |
Returns the final authentication code. | |
\inmodule QtCore
The QMessageAuthenticationCode class provides a way to generate hash-based message authentication codes.
\reentrant
Use the QMessageAuthenticationCode class to generate hash-based message authentication codes (HMACs). The class supports all cryptographic hash algorithms from \l QCryptographicHash (see also \l{QCryptographicHash::Algorithm}).
To generate a message authentication code, pass a suitable hash algorithm and secret key to the constructor. Then process the message data by calling \l addData() one or more times. After the full message has been processed, get the final authentication code via the \l result() function:
\dots
For simple cases like above, you can also use the static \l hash() function:
Definition at line 16 of file qmessageauthenticationcode.h.
|
explicit |
Constructs an object that can be used to create a cryptographic hash from data using method \a method and key \a key.
! [qba-to-qbav-6.6]
{QByteArray{~~~}} to make the cast explicit. This is backwards-compatible with old Qt versions. ! [qba-to-qbav-6.6] Definition at line 1497 of file qcryptographichash.cpp.
References QMessageAuthenticationCodePrivate::setKey().
|
inlinenoexcept |
Move-constructs a new QMessageAuthenticationCode from other.
Definition at line 26 of file qmessageauthenticationcode.h.
References other().
QMessageAuthenticationCode::~QMessageAuthenticationCode | ( | ) |
Destroys the object.
Definition at line 1507 of file qcryptographichash.cpp.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Adds the first length chars of data to the message.
Definition at line 1596 of file qcryptographichash.cpp.
References QCryptographicHashPrivate::addData(), and QMessageAuthenticationCodePrivate::messageHash.
|
noexcept |
Adds data to the message.
{qba-to-qbav-6.6}
Definition at line 1608 of file qcryptographichash.cpp.
References d.
bool QMessageAuthenticationCode::addData | ( | QIODevice * | device | ) |
Reads the data from the open QIODevice device until it ends and adds it to message.
Returns true
if reading was successful.
Definition at line 1619 of file qcryptographichash.cpp.
References QCryptographicHashPrivate::addData(), device, and QMessageAuthenticationCodePrivate::messageHash.
|
static |
Returns the authentication code for the message message using the key key and the method method.
{qba-to-qbav-6.6}
Definition at line 1677 of file qcryptographichash.cpp.
References ba, hashInto(), hashLengthInternal(), method, Q_ASSERT, QByteArray::size(), and Qt::Uninitialized.
Referenced by main().
|
inlinestaticnoexcept |
Definition at line 59 of file qmessageauthenticationcode.h.
References method.
Referenced by hash().
|
inlinestaticnoexcept |
|
inlinestaticnoexcept |
Returns the authentication code for the message (message or, for the QSpan overloads, the concatenation of messageParts) using the key key and the method method.
The return value will be a sub-span of buffer, unless buffer is of insufficient size, in which case a null QByteArrayView is returned.
Definition at line 67 of file qmessageauthenticationcode.h.
References method.
|
staticnoexcept |
Definition at line 1704 of file qcryptographichash.cpp.
References method.
|
inlinestaticnoexcept |
Definition at line 63 of file qmessageauthenticationcode.h.
References method.
|
inlinestaticnoexcept |
Definition at line 75 of file qmessageauthenticationcode.h.
References method.
|
noexcept |
Resets message data.
Calling this function doesn't affect the key.
Definition at line 1548 of file qcryptographichash.cpp.
References QMessageAuthenticationCodePrivate::initMessageHash(), QMessageAuthenticationCodePrivate::messageHash, and QCryptographicHashPrivate::reset().
QByteArray QMessageAuthenticationCode::result | ( | ) | const |
Returns the final authentication code.
Definition at line 1645 of file qcryptographichash.cpp.
References resultView(), and QByteArrayView::toByteArray().
|
noexcept |
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.
Definition at line 1634 of file qcryptographichash.cpp.
References QMessageAuthenticationCodePrivate::finalize(), QMessageAuthenticationCodePrivate::messageHash, and QCryptographicHashPrivate::resultView().
Referenced by result().
|
noexcept |
Sets secret key.
Calling this function automatically resets the object state.
For optimal performance, call this function only to change the active key, not to set an initial key, as in
Prefer to pass initial keys as the constructor argument:
You can use std::optional to delay construction of a QMessageAuthenticationCode until you know the key:
{qba-to-qbav-6.6}
Definition at line 1586 of file qcryptographichash.cpp.
References d.
|
inlinenoexcept |
Swaps message authentication code other with this message authentication code.
This operation is very fast and never fails.
Definition at line 31 of file qmessageauthenticationcode.h.
References d, other(), and qt_ptr_swap().