crypto.hkdfClass
HMAC-based Extract-and-Expand Key Derivation Function (HKDF) based on RFC 5869.
This module provides functions to perform HKDF operations, utilizing the
underlying crypto C module for HMAC calculations. Like every crypto object, an instance is
created in a process runtime alone.
Functions
Methods
- crypto.hkdf.new (alg)
-
Creates a new HKDF instance for a given hash algorithm.
Parameters
- alg
string
base hash algorithm name (e.g., “sha256”, “sha512”).
The “hmac(” prefix will be added automatically.
Returns
hkdf
An HKDF instance table with methods for key derivation.
Usage
local hkdf_sha256 = require("crypto.hkdf").new("sha256")
- crypto.hkdf:close ()
-
Closes the HKDF instance and releases the underlying HMAC transform.
It also runs when a to-be-closed variable holding the instance goes out of scope. Without it, the
transform is freed when it is collected.
- crypto.hkdf:expand (prk[, info], length)
-
Performs the HKDF Expand step.
Parameters
- prk
string
Pseudorandom Key.
- info
string
Optional context and application-specific information. Defaults to an empty string if nil.
(optional)
- length
number
desired length in bytes for the Output Keying Material (OKM), at most 255
times the digest size.
Returns
string
Output Keying Material of the specified length.
-
Performs the HKDF Extract step.
Parameters
- salt
string
Optional salt value. If nil or not provided, a salt of
hash_len zeros is used.
(optional)
- ikm
string
Input Keying Material.
Returns
string
Pseudorandom Key (PRK).
- crypto.hkdf:hkdf ([salt], ikm[, info], length)
-
Performs the full HKDF (Extract and Expand) operation.
Parameters
- salt
string
Optional salt value.
(optional)
- ikm
string
Input Keying Material.
- info
string
Optional context and application-specific information.
(optional)
- length
number
desired length in bytes for the Output Keying Material.
Returns
string
Output Keying Material.