34     void setKey(
const void *key, 
size_t keyLen, 
const void *salt = 0, 
size_t saltLen = 0);
 
   36     void extract(
void *out, 
size_t outLen, 
const void *info = 0, 
size_t infoLen = 0);
 
   60     ~HKDF() { ::clean(buffer, 
sizeof(buffer)); }
 
   64     uint8_t buffer[T::HASH_SIZE * 2];
 
   67 template <
typename T> 
void hkdf
 
   68     (
void *out, 
size_t outLen, 
const void *key, 
size_t keyLen,
 
   69      const void *salt, 
size_t saltLen, 
const void *info, 
size_t infoLen)
 
   72     context.
setKey(key, keyLen, salt, saltLen);
 
   73     context.
extract(out, outLen, info, infoLen);
 
Concrete base class to assist with implementing HKDF mode for hash algorithms.
void setKey(const void *key, size_t keyLen, const void *salt=0, size_t saltLen=0)
Sets the key and salt for a HKDF session.
void clear()
Clears sensitive information from this HKDF instance.
HKDFCommon()
Constructs a new HKDF instance.
void setHashAlgorithm(Hash *hashAlg, uint8_t *buffer)
Sets the hash algorithm to use for HKDF operations.
void extract(void *out, size_t outLen, const void *info=0, size_t infoLen=0)
Extracts data from a HKDF session.
virtual ~HKDFCommon()
Destroys this HKDF instance.
Implementation of the HKDF mode for hash algorithms.
~HKDF()
Destroys a HKDF instance and all sensitive data within it.
HKDF()
Constructs a new HKDF object for the hash algorithm T.
Abstract base class for cryptographic hash algorithms.