SHA1 hash implementation and interface functions.
More...
Go to the source code of this file.
|
int | hmac_sha1_vector (const u8 *key, size_t key_len, size_t num_elem, const u8 *addr[], const size_t *len, u8 *mac) |
| HMAC-SHA1 over data vector (RFC 2104) More...
|
|
int | hmac_sha1 (const u8 *key, size_t key_len, const u8 *data, size_t data_len, u8 *mac) |
| HMAC-SHA1 over data buffer (RFC 2104) More...
|
|
int | sha1_prf (const u8 *key, size_t key_len, const char *label, const u8 *data, size_t data_len, u8 *buf, size_t buf_len) |
| SHA1-based Pseudo-Random Function (PRF) (IEEE 802.11i, 8.5.1.1) More...
|
|
int | sha1_t_prf (const u8 *key, size_t key_len, const char *label, const u8 *seed, size_t seed_len, u8 *buf, size_t buf_len) |
| EAP-FAST Pseudo-Random Function (T-PRF) More...
|
|
int __must_check | tls_prf_sha1_md5 (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 (TLS-PRF, RFC 2246) More...
|
|
int | pbkdf2_sha1 (const char *passphrase, const u8 *ssid, size_t ssid_len, int iterations, u8 *buf, size_t buflen) |
| SHA1-based key derivation function (PBKDF2) for IEEE 802.11i. More...
|
|
SHA1 hash implementation and interface functions.
int hmac_sha1 |
( |
const u8 * |
key, |
|
|
size_t |
key_len, |
|
|
const u8 * |
data, |
|
|
size_t |
data_len, |
|
|
u8 * |
mac |
|
) |
| |
HMAC-SHA1 over data buffer (RFC 2104)
- Parameters
-
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) |
- Returns
- 0 on success, -1 of failure
int hmac_sha1_vector |
( |
const u8 * |
key, |
|
|
size_t |
key_len, |
|
|
size_t |
num_elem, |
|
|
const u8 * |
addr[], |
|
|
const size_t * |
len, |
|
|
u8 * |
mac |
|
) |
| |
HMAC-SHA1 over data vector (RFC 2104)
- Parameters
-
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 (20 bytes) |
- Returns
- 0 on success, -1 on failure
int pbkdf2_sha1 |
( |
const char * |
passphrase, |
|
|
const u8 * |
ssid, |
|
|
size_t |
ssid_len, |
|
|
int |
iterations, |
|
|
u8 * |
buf, |
|
|
size_t |
buflen |
|
) |
| |
SHA1-based key derivation function (PBKDF2) for IEEE 802.11i.
- Parameters
-
passphrase | ASCII passphrase |
ssid | SSID |
ssid_len | SSID length in bytes |
iterations | Number of iterations to run |
buf | Buffer for the generated key |
buflen | Length of the buffer in bytes |
- Returns
- 0 on success, -1 of failure
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.
int sha1_prf |
( |
const u8 * |
key, |
|
|
size_t |
key_len, |
|
|
const char * |
label, |
|
|
const u8 * |
data, |
|
|
size_t |
data_len, |
|
|
u8 * |
buf, |
|
|
size_t |
buf_len |
|
) |
| |
SHA1-based Pseudo-Random Function (PRF) (IEEE 802.11i, 8.5.1.1)
- Parameters
-
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 |
- Returns
- 0 on success, -1 of failure
This function is used to derive new, cryptographically separate keys from a given key (e.g., PMK in IEEE 802.11i).
int sha1_t_prf |
( |
const u8 * |
key, |
|
|
size_t |
key_len, |
|
|
const char * |
label, |
|
|
const u8 * |
seed, |
|
|
size_t |
seed_len, |
|
|
u8 * |
buf, |
|
|
size_t |
buf_len |
|
) |
| |
EAP-FAST Pseudo-Random Function (T-PRF)
- Parameters
-
key | Key for PRF |
key_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 |
buf | Buffer for the generated pseudo-random key |
buf_len | Number of bytes of key to generate |
- Returns
- 0 on success, -1 of failure
This function is used to derive new, cryptographically separate keys from a given key for EAP-FAST. T-PRF is defined in RFC 4851, Section 5.5.
int __must_check tls_prf_sha1_md5 |
( |
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 (TLS-PRF, RFC 2246)
- Parameters
-
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 |
- 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.