|
wpa_supplicant / hostapd 2.0
|
SHA256 hash implementation and interface functions. More...
Go to the source code of this file.
Defines | |
| #define | SHA256_MAC_LEN 32 |
Functions | |
| void | hmac_sha256_vector (const u8 *key, size_t key_len, size_t num_elem, const u8 *addr[], const size_t *len, u8 *mac) |
| HMAC-SHA256 over data vector (RFC 2104) | |
| void | hmac_sha256 (const u8 *key, size_t key_len, const u8 *data, size_t data_len, u8 *mac) |
| HMAC-SHA256 over data buffer (RFC 2104) | |
| void | sha256_prf (const u8 *key, size_t key_len, const char *label, const u8 *data, size_t data_len, u8 *buf, size_t buf_len) |
| SHA256-based Pseudo-Random Function (IEEE 802.11r, 8.5.1.5.2) | |
| void | tls_prf_sha256 (const u8 *secret, size_t secret_len, const char *label, const u8 *seed, size_t seed_len, u8 *out, size_t outlen) |
| Pseudo-Random Function for TLS v1.2 (P_SHA256, RFC 5246) | |
SHA256 hash implementation and interface functions.
This software may be distributed under the terms of the BSD license. See README for more details.
| void hmac_sha256 | ( | const u8 * | key, |
| size_t | key_len, | ||
| const u8 * | data, | ||
| size_t | data_len, | ||
| u8 * | mac | ||
| ) |
HMAC-SHA256 over data buffer (RFC 2104)
| key | Key for HMAC operations |
| key_len | Length of the key in bytes |
| data | Pointers to the data area |
| data_len | Length of the data area |
| mac | Buffer for the hash (20 bytes) |
| void hmac_sha256_vector | ( | const u8 * | key, |
| size_t | key_len, | ||
| size_t | num_elem, | ||
| const u8 * | addr[], | ||
| const size_t * | len, | ||
| u8 * | mac | ||
| ) |
HMAC-SHA256 over data vector (RFC 2104)
| key | Key for HMAC operations |
| key_len | Length of the key in bytes |
| num_elem | Number of elements in the data vector |
| addr | Pointers to the data areas |
| len | Lengths of the data blocks |
| mac | Buffer for the hash (32 bytes) |
| void sha256_prf | ( | const u8 * | key, |
| size_t | key_len, | ||
| const char * | label, | ||
| const u8 * | data, | ||
| size_t | data_len, | ||
| u8 * | buf, | ||
| size_t | buf_len | ||
| ) |
SHA256-based Pseudo-Random Function (IEEE 802.11r, 8.5.1.5.2)
| key | Key for PRF |
| key_len | Length of the key in bytes |
| label | A unique label for each purpose of the PRF |
| data | Extra data to bind into the key |
| data_len | Length of the data |
| buf | Buffer for the generated pseudo-random key |
| buf_len | Number of bytes of key to generate |
This function is used to derive new, cryptographically separate keys from a given key.
| void tls_prf_sha256 | ( | const u8 * | secret, |
| size_t | secret_len, | ||
| const char * | label, | ||
| const u8 * | seed, | ||
| size_t | seed_len, | ||
| u8 * | out, | ||
| size_t | outlen | ||
| ) |
Pseudo-Random Function for TLS v1.2 (P_SHA256, RFC 5246)
| secret | Key for PRF |
| secret_len | Length of the key in bytes |
| label | A unique label for each purpose of the PRF |
| seed | Seed value to bind into the key |
| seed_len | Length of the seed |
| out | Buffer for the generated pseudo-random key |
| outlen | Number of bytes of key to generate |
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.
1.7.3