- Qt 5.15
- Qt Core
- C++ Classes
- QMessageAuthenticationCode
- Qt 5.15.19 Reference Documentation

# 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

This class was introduced in Qt 5.1.

- List of all members, including inherited members

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

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.