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. | |
Static Public Member Functions | |
static QByteArray | hash (QByteArrayView message, QByteArrayView key, QCryptographicHash::Algorithm method) |
Returns the authentication code for the message message using the key key and the method method. | |
\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 1461 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 1471 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 1560 of file qcryptographichash.cpp.
References QCryptographicHashPrivate::addData(), and QMessageAuthenticationCodePrivate::messageHash.
|
noexcept |
Adds data to the message.
{qba-to-qbav-6.6}
Definition at line 1572 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 1583 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 1639 of file qcryptographichash.cpp.
References method.
Referenced by main().
|
noexcept |
Resets message data.
Calling this function doesn't affect the key.
Definition at line 1512 of file qcryptographichash.cpp.
References QMessageAuthenticationCodePrivate::initMessageHash(), QMessageAuthenticationCodePrivate::messageHash, and QCryptographicHashPrivate::reset().
QByteArray QMessageAuthenticationCode::result | ( | ) | const |
Returns the final authentication code.
Definition at line 1609 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 1598 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 1550 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().