libosmogsm 1.13.1.1-afb4 Osmocom GSM library

Macros | Functions
sha1.h File Reference

Go to the source code of this file.

## Macros
#define | SHA1_MAC_LEN 20

## Functions
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_vector - HMAC-SHA1 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 (20 bytes) Returns: 0 on success, -1 on failure More...
int | hmac_sha1 (const u8 *key, size_t key_len, const u8 *data, size_t data_len, u8 *mac)
| hmac_sha1 - HMAC-SHA1 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) Returns: 0 on success, -1 of failure 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_prf - SHA1-based Pseudo-Random Function (PRF) (IEEE 802.11i, 8.5.1.1) @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 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)
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)
int | pbkdf2_sha1 (const char *passphrase, const char *ssid, size_t ssid_len, int iterations, u8 *buf, size_t buflen)

## Macro Definition Documentation

## ◆ SHA1_MAC_LEN

#define SHA1_MAC_LEN 20

## Function Documentation

## ◆ hmac_sha1()

int hmac_sha1 | ( | const u8 * | key,
|  | size_t | key_len,
|  | const u8 * | data,
|  | size_t | data_len,
|  | u8 * | mac
| ) |  |

hmac_sha1 - HMAC-SHA1 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) Returns: 0 on success, -1 of failure

References data, and hmac_sha1_vector().

## ◆ hmac_sha1_vector()

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_vector - HMAC-SHA1 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 (20 bytes) Returns: 0 on success, -1 on failure

References len, os_memcpy, os_memset, SHA1_MAC_LEN, and sha1_vector().

Referenced by hmac_sha1(), and sha1_prf().

## ◆ pbkdf2_sha1()

int pbkdf2_sha1 | ( | const char * | passphrase,
|  | const char * | ssid,
|  | size_t | ssid_len,
|  | int | iterations,
|  | u8 * | buf,
|  | size_t | buflen
| ) |  |

## ◆ sha1_prf()

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_prf - SHA1-based Pseudo-Random Function (PRF) (IEEE 802.11i, 8.5.1.1) @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).

References data, hmac_sha1_vector(), len, os_memcpy, os_strlen, and SHA1_MAC_LEN.

## ◆ sha1_t_prf()

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
| ) |  |

## ◆ tls_prf_sha1_md5()

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
| ) |  |