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.