wpa_supplicant / hostapd 2.0
Defines | Typedefs | Functions

sha1-internal.c File Reference

SHA1 hash implementation and interface functions. More...

#include "includes.h"
#include "common.h"
#include "sha1.h"
#include "sha1_i.h"
#include "md5.h"
#include "crypto.h"

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)

Typedefs

typedef struct SHA1Context SHA1_CTX

Functions

void SHA1Transform (u32 state[5], const unsigned char buffer[64])
int sha1_vector (size_t num_elem, const u8 *addr[], const size_t *len, u8 *mac)
 SHA-1 hash for data vector.
void SHA1Init (SHA1_CTX *context)
void SHA1Update (SHA1_CTX *context, const void *_data, u32 len)
void SHA1Final (unsigned char digest[20], SHA1_CTX *context)

Detailed Description

SHA1 hash implementation and interface functions.

Copyright
Copyright (c) 2003-2005, Jouni Malinen <j@w1.fi>

This software may be distributed under the terms of the BSD license. See README for more details.


Define Documentation

#define blk (   i)
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))
#define blk0 (   i)
Value:
(block->l[i] = (rol(block->l[i], 24) & 0xFF00FF00) | \
        (rol(block->l[i], 8) & 0x00FF00FF))
#define R0 (   v,
  w,
  x,
  y,
  z,
 
)
Value:
z += ((w & (x ^ y)) ^ y) + blk0(i) + 0x5A827999 + rol(v, 5); \
        w = rol(w, 30);
#define R1 (   v,
  w,
  x,
  y,
  z,
 
)
Value:
z += ((w & (x ^ y)) ^ y) + blk(i) + 0x5A827999 + rol(v, 5); \
        w = rol(w, 30);
#define R3 (   v,
  w,
  x,
  y,
  z,
 
)
Value:
z += (((w | x) & y) | (w & x)) + blk(i) + 0x8F1BBCDC + rol(v, 5); \
        w = rol(w, 30);
#define R4 (   v,
  w,
  x,
  y,
  z,
 
)
Value:
z += (w ^ x ^ y) + blk(i) + 0xCA62C1D6 + rol(v, 5); \
        w=rol(w, 30);

Function Documentation

int sha1_vector ( size_t  num_elem,
const u8 *  addr[],
const size_t *  len,
u8 *  mac 
)

SHA-1 hash for data vector.

Parameters:
num_elemNumber of elements in the data vector
addrPointers to the data areas
lenLengths of the data blocks
macBuffer for the hash
Returns:
0 on success, -1 of failure
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines