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.