Crypto++ 8.9
Free C++ class library of cryptographic schemes
|
PBKDF1 from PKCS #5. More...
#include <pwdbased.h>
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. | |
virtual size_t | DeriveKey (byte *derived, size_t derivedLen, const byte *secret, size_t secretLen, const NameValuePairs ¶ms=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 ¶ms) |
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 () |
PBKDF1 from PKCS #5.
T | a HashTransformation class |
Definition at line 29 of file pwdbased.h.
|
inlinevirtual |
Definition at line 32 of file pwdbased.h.
|
inlinestatic |
Definition at line 34 of file pwdbased.h.
|
inlinevirtual |
Provides the name of this algorithm.
Implements KeyDerivationFunction.
Definition at line 41 of file pwdbased.h.
|
inlinevirtual |
Determine maximum number of bytes.
Reimplemented from KeyDerivationFunction.
Definition at line 46 of file pwdbased.h.
|
virtual |
Returns a valid key length for the derivation function.
keylength | the size of the derived key, in bytes |
Implements KeyDerivationFunction.
Definition at line 87 of file pwdbased.h.
|
virtual |
Derive a key from a seed.
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 |
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 95 of file pwdbased.h.
size_t PKCS5_PBKDF1< 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.
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 |
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.
PKCS #5 says PBKDF1 should only take 8-byte salts. This implementation allows salts of any length.
Definition at line 115 of file pwdbased.h.