#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "common.h"
#include "sha1.h"
#include "md5.h"
#include "crypto.h"
Include dependency graph for sha1.c:
Go to the source code of this file.
Defines | |
#define | SHA1HANDSOFF |
#define | rol(value, bits) (((value) << (bits)) | ((value) >> (32 - (bits)))) |
#define | blk0(i) |
#define | blk(i) |
#define | R0(v, w, x, y, z, i) |
#define | R1(v, w, x, y, z, i) |
#define | R2(v, w, x, y, z, i) z += (w ^ x ^ y) + blk(i) + 0x6ED9EBA1 + rol(v, 5); w = rol(w, 30); |
#define | R3(v, w, x, y, z, i) |
#define | R4(v, w, x, y, z, i) |
Functions | |
void | 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). | |
void | 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). | |
void | 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). | |
void | 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). | |
int | tls_prf (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). | |
void | pbkdf2_sha1 (const char *passphrase, const char *ssid, size_t ssid_len, int iterations, u8 *buf, size_t buflen) |
SHA1-based key derivation function (PBKDF2) for IEEE 802.11i. | |
void | sha1_vector (size_t num_elem, const u8 *addr[], const size_t *len, u8 *mac) |
SHA-1 hash for data vector. | |
void | sha1_transform (u8 *state, const u8 data[64]) |
Perform one SHA-1 transform step. |
Alternatively, this software may be distributed under the terms of BSD license.
See README and COPYING for more details.
Definition in file sha1.c.
|
Value: (block->l[i & 15] = rol(block->l[(i + 13) & 15] ^ \ block->l[(i + 8) & 15] ^ block->l[(i + 2) & 15] ^ block->l[i & 15], 1)) |
|
Value: (block->l[i] = (rol(block->l[i], 24) & 0xFF00FF00) | \ (rol(block->l[i], 8) & 0x00FF00FF)) |
|
Value: z += ((w & (x ^ y)) ^ y) + blk0(i) + 0x5A827999 + rol(v, 5); \ w = rol(w, 30); |
|
Value: z += ((w & (x ^ y)) ^ y) + blk(i) + 0x5A827999 + rol(v, 5); \ w = rol(w, 30); |
|
Value: z += (((w | x) & y) | (w & x)) + blk(i) + 0x8F1BBCDC + rol(v, 5); \ w = rol(w, 30); |
|
Value: z += (w ^ x ^ y) + blk(i) + 0xCA62C1D6 + rol(v, 5); \ w=rol(w, 30); |
|
HMAC-SHA1 over data buffer (RFC 2104).
Definition at line 109 of file sha1.c. Here is the call graph for this function: |
|
HMAC-SHA1 over data vector (RFC 2104).
Definition at line 36 of file sha1.c. Here is the call graph for this function: |
|
SHA1-based key derivation function (PBKDF2) for IEEE 802.11i.
|
|
SHA1-based Pseudo-Random Function (PRF) (IEEE 802.11i, 8.5.1.1).
Definition at line 130 of file sha1.c. Here is the call graph for this function: |
|
EAP-FAST Pseudo-Random Function (T-PRF).
Definition at line 182 of file sha1.c. Here is the call graph for this function: |
|
Perform one SHA-1 transform step.
|
|
SHA-1 hash for data vector.
|
|
Pseudo-Random Function for TLS (TLS-PRF, RFC 2246).
Definition at line 237 of file sha1.c. Here is the call graph for this function: |