# QCA::KeyDerivationFunction Class Reference
[QCA user API]

General superclass for key derivation algorithms. More...

`#include <QtCrypto>`

Inheritance diagram for QCA::KeyDerivationFunction:

Collaboration diagram for QCA::KeyDerivationFunction:

[legend]

List of all members.

## Public Member Functions

| KeyDerivationFunction (const KeyDerivationFunction &from)
SymmetricKey | makeKey (const SecureArray &secret, const InitializationVector &salt, unsigned int keyLength, unsigned int iterationCount)
KeyDerivationFunction & | operator= (const KeyDerivationFunction &from)

## Static Public Member Functions

static QString | withAlgorithm (const QString &kdfType, const QString &algType)

## Protected Member Functions

| KeyDerivationFunction (const QString &type, const QString &provider)

## Detailed Description

General superclass for key derivation algorithms.

KeyDerivationFunction is a superclass for the various key derivation function algorithms within QCA. You should not need to use it directly unless you are adding another key derivation capability to QCA - you should be using a sub-class. PBKDF2 using SHA1 is recommended for new applications.

## Constructor & Destructor Documentation

QCA::KeyDerivationFunction::KeyDerivationFunction | ( | const KeyDerivationFunction & | from | ) |

Standard copy constructor.

Parameters:

  | from | the KeyDerivationFunction to copy from

QCA::KeyDerivationFunction::KeyDerivationFunction | ( | const QString & | type,
|  | const QString & | provider |
| ) |  |  | `[protected]`

Special constructor for subclass initialisation.

Parameters:

  | type | the algorithm to create
  | provider | the name of the provider to create the key derivation function in.

## Member Function Documentation

SymmetricKey QCA::KeyDerivationFunction::makeKey | ( | const SecureArray & | secret,
|  | const InitializationVector & | salt,
|  | unsigned int | keyLength,
|  | unsigned int | iterationCount |
| ) |  |  |

Generate the key from a specified secret and salt value.

Note:
  key length is ignored for some functions

Parameters:

  | secret | the secret (password or passphrase)
  | salt | the salt to use
  | keyLength | the length of key to return
  | iterationCount | the number of iterations to perform

Returns:
  the derived key

KeyDerivationFunction& QCA::KeyDerivationFunction::operator= | ( | const KeyDerivationFunction & | from | ) |

Assignment operator.

Copies the state (including key) from one KeyDerivationFunction to another

Parameters:

  | from | the KeyDerivationFunction to assign from

static QString QCA::KeyDerivationFunction::withAlgorithm | ( | const QString & | kdfType,
|  | const QString & | algType |
| ) |  |  | `[static]`

Construct the name of the algorithm.

You can use this to build a standard name string. You probably only need this method if you are creating a new subclass.

Parameters:

  | kdfType | the type of key derivation function
  | algType | the name of the algorithm to use with the key derivation function

Returns:
  the name of the KDF/algorithm pair

The documentation for this class was generated from the following file:

- qca_basic.h