QCA::KeyDerivationFunction Class Reference
QCA user API

`#include <QtCrypto>`

Collaboration diagram for QCA::KeyDerivationFunction:
[legend]

## Public Member Functions

| KeyDerivationFunction (const KeyDerivationFunction &from)
SymmetricKey | makeKey (const SecureArray &secret, const InitializationVector &salt, unsigned int keyLength, int msecInterval, unsigned int *iterationCount)
SymmetricKey | makeKey (const SecureArray &secret, const InitializationVector &salt, unsigned int keyLength, unsigned int iterationCount)
KeyDerivationFunction & | operator= (const KeyDerivationFunction &from)
Public Member Functions inherited from QCA::Algorithm
| Algorithm (const Algorithm &from)
void | change (const QString &type, const QString &provider)
void | change (Provider::Context *c)
Provider::Context * | context ()
const Provider::Context * | context () const
Algorithm & | operator= (const Algorithm &from)
Provider * | provider () const
Provider::Context * | takeContext ()
QString | type () const

## Static Public Member Functions

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

## Protected Member Functions

| KeyDerivationFunction (const QString &type, const QString &provider)
Protected Member Functions inherited from QCA::Algorithm
| Algorithm ()
| Algorithm (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

## KeyDerivationFunction() [1/2]

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

Standard copy constructor.

Parameters

  from | the KeyDerivationFunction to copy from

References KeyDerivationFunction().

Referenced by KeyDerivationFunction(), operator=(), QCA::PBKDF1::PBKDF1(), and QCA::PBKDF2::PBKDF2().

## KeyDerivationFunction() [2/2]

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.

References QCA::Algorithm::provider(), and QCA::Algorithm::type().

## Member Function Documentation

## operator=()

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

References KeyDerivationFunction().

## makeKey() [1/2]

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

## makeKey() [2/2]

SymmetricKey QCA::KeyDerivationFunction::makeKey | ( | const SecureArray & | secret,
|  | const InitializationVector & | salt,
|  | unsigned int | keyLength,
|  | int | msecInterval,
|  | 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
  msecInterval | the maximum time to compute the key, in milliseconds
  iterationCount | a pointer to store the number of iteration done for the specified time

Returns
  the derived key

## withAlgorithm()

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

Referenced by QCA::PBKDF1::PBKDF1(), and QCA::PBKDF2::PBKDF2().

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

- qca_basic.h