QMessageAuthenticationCode Class

The QMessageAuthenticationCode class provides a way to generate hash-based message authentication codes. More...

Header: #include <QMessageAuthenticationCode>
qmake: QT += core
Since: Qt 5.1

Note: All functions in this class are reentrant.

Public Functions

QMessageAuthenticationCode(QCryptographicHash::Algorithm method, const QByteArray &key = QByteArray())
~QMessageAuthenticationCode()
void addData(const char *data, int length)
void addData(const QByteArray &data)
bool addData(QIODevice *device)
void reset()
QByteArray result() const
void setKey(const QByteArray &key)

Static Public Members

QByteArray hash(const QByteArray &message, const QByteArray &key, QCryptographicHash::Algorithm method)

Detailed Description

The QMessageAuthenticationCode class provides a way to generate hash-based message authentication codes.

QMessageAuthenticationCode supports all cryptographic hashes which are supported by QCryptographicHash.

To generate message authentication code, pass hash algorithm QCryptographicHash::Algorithm to constructor, then set key and message by setKey() and addData() functions. Result can be acquired by result() function.

    QByteArray key = "key";
    QByteArray message = "The quick brown fox jumps over the lazy dog";
    ...
    QMessageAuthenticationCode code(QCryptographicHash::Sha1);
    code.setKey(key);
    code.addData(message);
    code.result().toHex();      // returns "de7c9b85b8b78aa6bc8a7a36f70a90701c9db4d9"

Alternatively, this effect can be achieved by providing message, key and method to hash() method.

    QMessageAuthenticationCode::hash(message, key, QCryptographicHash::Sha1).toHex();

See also QCryptographicHash.

Member Function Documentation

QMessageAuthenticationCode::QMessageAuthenticationCode(QCryptographicHash::Algorithm method, const QByteArray &key = QByteArray())

Constructs an object that can be used to create a cryptographic hash from data using method method and key key.

QMessageAuthenticationCode::~QMessageAuthenticationCode()

Destroys the object.

void QMessageAuthenticationCode::addData(const char *data, int length)

Adds the first length chars of data to the message.

void QMessageAuthenticationCode::addData(const QByteArray &data)

This function overloads addData().

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.

Note: device must be already opened.

[static] QByteArray QMessageAuthenticationCode::hash(const QByteArray &message, const QByteArray &key, QCryptographicHash::Algorithm method)

Returns the authentication code for the message message using the key key and the method method.

void QMessageAuthenticationCode::reset()

Resets message data. Calling this method doesn't affect the key.

QByteArray QMessageAuthenticationCode::result() const

Returns the final authentication code.

See also QByteArray::toHex().

void QMessageAuthenticationCode::setKey(const QByteArray &key)

Sets secret key. Calling this method automatically resets the object state.

© 2021 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.