[det]crypto_data_hkdf(+Data,
+Length, -Bytes, +Options)Concentrate possibly dispersed entropy of Data and then
expand it to the desired length. Bytes is unified with a list
of bytes of length Length, and is suitable as input
keying material and initialization vectors to the symmetric encryption
predicates.
Admissible options are:
- algorithm(+Algorithm)
- A hashing algorithm as specified to crypto_data_hash/3.
The default is a cryptographically secure algorithm. If you specify a
variable, then it is unified with the algorithm that was used.
- info(+Info)
- Optional context and application specific information, specified as an
atom, string or list of bytes. The default is the zero length
atom” .
- salt(+List)
- Optionally, a list of bytes that are used as salt. The default is
all zeroes.
- encoding(+Atom)
- Either
utf8
(default) or octet
, denoting the
representation of Data as in crypto_data_hash/3.
The info/1 option can be used to
generate multiple keys from a single master key, using for example
values such as key
and
iv
, or the name of a file that is to be encrypted.
This predicate requires OpenSSL 1.1.0 or greater.
- See also
- crypto_n_random_bytes/2
to obtain a suitable salt.