PKCS5_PBKDF2_HMAC< T > Class Template Reference

PBKDF2 from PKCS #5. More...

`#include <pwdbased.h>`

Inheritance diagram for PKCS5_PBKDF2_HMAC< T >:

## Public Member Functions

std::string | AlgorithmName () const
| Provides the name of this algorithm.
size_t | MaxDerivedKeyLength () const
| Determine maximum number of bytes.
size_t | GetValidDerivedLength (size_t keylength) const
| Returns a valid key length for the derivation function.
size_t | DeriveKey (byte *derived, size_t derivedLen, const byte *secret, size_t secretLen, const NameValuePairs &params=g_nullNameValuePairs) const
| Derive a key from a seed.
size_t | DeriveKey (byte *derived, size_t derivedLen, byte purpose, const byte *secret, size_t secretLen, const byte *salt, size_t saltLen, unsigned int iterations, double timeInSeconds=0) const
| Derive a key from a secret seed.
Public Member Functions inherited from KeyDerivationFunction
virtual size_t | MinDerivedKeyLength () const
| Determine minimum number of bytes.
virtual bool | IsValidDerivedLength (size_t keylength) const
| Returns whether keylength is a valid key length.
virtual void | SetParameters (const NameValuePairs &params)
| Set or change parameters.
Public Member Functions inherited from Algorithm
| Algorithm (bool checkSelfTestStatus=true)
| Interface for all crypto algorithms.
virtual std::string | AlgorithmProvider () const
| Retrieve the provider of this algorithm.
Public Member Functions inherited from Clonable
virtual Clonable * | Clone () const
| Copies this object.

## Static Public Member Functions

static std::string | StaticAlgorithmName ()

## Detailed Description

template<class T>
class PKCS5_PBKDF2_HMAC< T >

PBKDF2 from PKCS #5.

Template Parameters

  T | a HashTransformation class

See also
  PasswordBasedKeyDerivationFunction, PKCS5_PBKDF2_HMAC on the Crypto++ wiki

Since
  Crypto++ 2.0

Definition at line 158 of file pwdbased.h.

## Constructor & Destructor Documentation

## ~PKCS5_PBKDF2_HMAC()

template<class T >

virtual PKCS5_PBKDF2_HMAC< T >::~PKCS5_PBKDF2_HMAC | ( |  | ) |

inline virtual

Definition at line 161 of file pwdbased.h.

## Member Function Documentation

## StaticAlgorithmName()

template<class T >

static std::string PKCS5_PBKDF2_HMAC< T >::StaticAlgorithmName | ( |  | ) |

inline static

Definition at line 163 of file pwdbased.h.

## AlgorithmName()

template<class T >

std::string PKCS5_PBKDF2_HMAC< T >::AlgorithmName | ( |  | ) | const

inline virtual

Provides the name of this algorithm.

Returns
  the standard algorithm name

Implements KeyDerivationFunction.

Definition at line 170 of file pwdbased.h.

## MaxDerivedKeyLength()

template<class T >

size_t PKCS5_PBKDF2_HMAC< T >::MaxDerivedKeyLength | ( |  | ) | const

inline virtual

Determine maximum number of bytes.

Returns
  Maximum number of bytes which can be derived

Reimplemented from KeyDerivationFunction.

Definition at line 176 of file pwdbased.h.

## GetValidDerivedLength()

template<class T >

size_t PKCS5_PBKDF2_HMAC< T >::GetValidDerivedLength | ( | size_t | keylength | ) | const

virtual

Returns a valid key length for the derivation function.

Parameters

  keylength | the size of the derived key, in bytes

Returns
  the valid key length, in bytes

Implements KeyDerivationFunction.

Definition at line 216 of file pwdbased.h.

## DeriveKey() [1/2]

template<class T >

size_t PKCS5_PBKDF2_HMAC< T >::DeriveKey | ( | byte * | derived,
|  | size_t | derivedLen,
|  | const byte * | secret,
|  | size_t | secretLen,
|  | const NameValuePairs & | params = `g_nullNameValuePairs`
| ) |  | const

virtual

Derive a key from a seed.

Parameters

  derived | the derived output buffer
  derivedLen | the size of the derived buffer, in bytes
  secret | the seed input buffer
  secretLen | the size of the secret buffer, in bytes
  params | additional initialization parameters to configure this object

Returns
  the number of iterations performed

Exceptions

  InvalidDerivedKeyLength | if `derivedLen` is invalid for the scheme

DeriveKey() provides a standard interface to derive a key from a secret seed and other parameters. Each class that derives from KeyDerivationFunction provides an overload that accepts most parameters used by the derivation function.

the number of iterations performed by DeriveKey() may be 1. For example, a scheme like HKDF does not use the iteration count so it returns 1.

Implements KeyDerivationFunction.

Definition at line 224 of file pwdbased.h.

## DeriveKey() [2/2]

template<class T >

size_t PKCS5_PBKDF2_HMAC< T >::DeriveKey | ( | byte * | derived,
|  | size_t | derivedLen,
|  | byte | purpose,
|  | const byte * | secret,
|  | size_t | secretLen,
|  | const byte * | salt,
|  | size_t | saltLen,
|  | unsigned int | iterations,
|  | double | timeInSeconds = `0`
| ) |  | const

Derive a key from a secret seed.

Parameters

  derived | the derived output buffer
  derivedLen | the size of the derived buffer, in bytes
  purpose | a purpose byte
  secret | the seed input buffer
  secretLen | the size of the secret buffer, in bytes
  salt | the salt input buffer
  saltLen | the size of the salt buffer, in bytes
  iterations | the number of iterations
  timeInSeconds | the in seconds

Returns
  the number of iterations performed

Exceptions

  InvalidDerivedKeyLength | if `derivedLen` is invalid for the scheme

DeriveKey() provides a standard interface to derive a key from a seed and other parameters. Each class that derives from KeyDerivationFunction provides an overload that accepts most parameters used by the derivation function.

If `timeInSeconds` is `> 0.0` then DeriveKey will run for the specified amount of time. If `timeInSeconds` is `0.0` then DeriveKey will run for the specified number of iterations.

Definition at line 244 of file pwdbased.h.

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

- pwdbased.h