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>.
Loading...
Searching...
No Matches
QPasswordDigestor Namespace Reference

\inmodule QtNetwork More...

Functions

Q_NETWORK_EXPORT QByteArray deriveKeyPbkdf1 (QCryptographicHash::Algorithm algorithm, const QByteArray &data, const QByteArray &salt, int iterations, quint64 dkLen)
 
Q_NETWORK_EXPORT QByteArray deriveKeyPbkdf2 (QCryptographicHash::Algorithm algorithm, const QByteArray &data, const QByteArray &salt, int iterations, quint64 dkLen)
 

Detailed Description

\inmodule QtNetwork

The QPasswordDigestor namespace contains functions which you can use to generate hashes or keys.

Function Documentation

◆ deriveKeyPbkdf1()

Q_NETWORK_EXPORT QByteArray QPasswordDigestor::deriveKeyPbkdf1 ( QCryptographicHash::Algorithm algorithm,
const QByteArray & data,
const QByteArray & salt,
int iterations,
quint64 dkLen )
Since
5.12

Returns a hash computed using the PBKDF1-algorithm as defined in \l {RFC 8018, section 5.1}.

The function takes the data and salt, and then hashes it repeatedly for iterations iterations using the specified hash algorithm. If the resulting hash is longer than dkLen then it is truncated before it is returned.

This function only supports SHA-1 and MD5! The max output size is 160 bits (20 bytes) when using SHA-1, or 128 bits (16 bytes) when using MD5. Specifying a value for dkLen which is greater than this results in a warning and an empty QByteArray is returned. To programmatically check this limit you can use \l {QCryptographicHash::hashLength}. Furthermore: the salt must always be 8 bytes long!

Note
This function is provided for use with legacy applications and all new applications are recommended to use \l {deriveKeyPbkdf2} {PBKDF2}.
See also
deriveKeyPbkdf2, QCryptographicHash, QCryptographicHash::hashLength

Definition at line 57 of file qpassworddigestor.cpp.

References hash, QCryptographicHash::hashLength(), i, QCryptographicHash::Md5, QByteArray(), qWarning, and QCryptographicHash::Sha1.

Referenced by QTlsPrivate::Q_GLOBAL_STATIC_WITH_ARGS().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ deriveKeyPbkdf2()

Q_NETWORK_EXPORT QByteArray QPasswordDigestor::deriveKeyPbkdf2 ( QCryptographicHash::Algorithm algorithm,
const QByteArray & data,
const QByteArray & salt,
int iterations,
quint64 dkLen )
Since
5.12

Derive a key using the PBKDF2-algorithm as defined in \l {RFC 8018, section 5.2}.

This function takes the data and salt, and then applies HMAC-X, where the X is algorithm, repeatedly. It internally concatenates intermediate results to the final output until at least dkLen amount of bytes have been computed and it will execute HMAC-X iterations times each time a concatenation is required. The total number of times it will execute HMAC-X depends on iterations, dkLen and algorithm and can be calculated as {iterations * ceil(dkLen / QCryptographicHash::hashLength(algorithm))}.

See also
deriveKeyPbkdf1, QMessageAuthenticationCode, QCryptographicHash

Definition at line 196 of file qpassworddigestor.cpp.

References QByteArray::cbegin(), QCryptographicHash::hashLength(), iter, QByteArray(), qToBigEndian(), qWarning, and Qt::Uninitialized.

Referenced by QTlsPrivate::Q_GLOBAL_STATIC_WITH_ARGS().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: