This function is used to derive PSK for WPA-PSK. For this protocol, iterations is set to 4096 and buflen to 32. This function is described in IEEE Std 802.11-2004, Clause H.4. The main construction is from PKCS#5 v2.0.

sha1_prf - SHA1-based Pseudo-Random Function (PRF) (IEEE 802.11i, 8.5.1.1) : Key for PRF : Length of the key in bytes : A unique label for each purpose of the PRF : Extra data to bind into the key : Length of the data : Buffer for the generated pseudo-random key : Number of bytes of key to generate

This function is used to derive new, cryptographically separate keys from a given key (e.g., PMK in IEEE 802.11i).

sha1_t_prf - EAP-FAST Pseudo-Random Function (T-PRF) : Key for PRF : Length of the key in bytes : A unique label for each purpose of the PRF : Seed value to bind into the key : Length of the seed : Buffer for the generated pseudo-random key : Number of bytes of key to generate

This function is used to derive new, cryptographically separate keys from a given key for EAP-FAST. T-PRF is defined in draft-cam-winget-eap-fast-02.txt, Appendix B.

tls_prf - Pseudo-Random Function for TLS (TLS-PRF, RFC 2246) : Key for PRF : Length of the key in bytes : A unique label for each purpose of the PRF : Seed value to bind into the key : Length of the seed : Buffer for the generated pseudo-random key : Number of bytes of key to generate Returns: 0 on success, -1 on failure.

This function is used to derive new, cryptographically separate keys from a given key in TLS. This PRF is defined in RFC 2246, Chapter 5.