IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

QMessageAuthenticationCode Class

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

All functions in this class are reentrant.

Article lu   fois.

L'auteur

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

QMessageAuthenticationCode Class

  • Header: QMessageAuthenticationCode

  • CMake:

    find_package(Qt6 REQUIRED COMPONENTS Core)

    target_link_libraries(mytarget PRIVATE Qt6::Core)

  • qmake: QT += core

  • Group: QMessageAuthenticationCode is part of tools

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.

 
Sélectionnez
    QByteArray key = "key";
    QByteArray message = "The quick brown fox jumps over the lazy dog";
    ...
    QMessageAuthenticationCode code(QCryptographicHash::Sha256, key);
    code.addData(message);
    code.result().toHex(); // returns "f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8"

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

 
Sélectionnez
    QMessageAuthenticationCode::hash(message, key, QCryptographicHash::Sha256).toHex();

See Also

Member Function Documentation

 

[explicit] 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, qsizetype 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.

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

See also QByteArray::toHex()

void QMessageAuthenticationCode::setKey(const QByteArray &key)

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

For optimal performance, call this method only to change the active key, not to set an initial key, as in

 
Sélectionnez
QMessageAuthenticationCode mac(method);
mac.setKey(key); // does extra work
use(mac);

Prefer to pass initial keys as the constructor argument:

 
Sélectionnez
QMessageAuthenticationCode mac(method, key); // OK, optimal
use(mac);

You can use std::optional to delay construction of a QMessageAuthenticationCode until you know the key:

 
Sélectionnez
std::optional<QMessageAuthenticationCode> mac;
~~~
key = ~~~;
mac.emplace(method, key);
use(*mac);

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+