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"
Include dependency graph for sha1-internal.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)

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 program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.

Alternatively, this software may be distributed under the terms of BSD license.

See README and COPYING for more details.

Definition in file sha1-internal.c.


Define Documentation

#define blk (  ) 
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))

Definition at line 143 of file sha1-internal.c.

#define blk0 (  ) 
Value:
(block->l[i] = (rol(block->l[i], 24) & 0xFF00FF00) | \
        (rol(block->l[i], 8) & 0x00FF00FF))

Definition at line 138 of file sha1-internal.c.

#define R0 ( v,
w,
x,
y,
z,
 ) 
Value:
z += ((w & (x ^ y)) ^ y) + blk0(i) + 0x5A827999 + rol(v, 5); \
        w = rol(w, 30);

Definition at line 147 of file sha1-internal.c.

#define R1 ( v,
w,
x,
y,
z,
 ) 
Value:
z += ((w & (x ^ y)) ^ y) + blk(i) + 0x5A827999 + rol(v, 5); \
        w = rol(w, 30);

Definition at line 150 of file sha1-internal.c.

#define R3 ( v,
w,
x,
y,
z,
 ) 
Value:
z += (((w | x) & y) | (w & x)) + blk(i) + 0x8F1BBCDC + rol(v, 5); \
        w = rol(w, 30);

Definition at line 155 of file sha1-internal.c.

#define R4 ( v,
w,
x,
y,
z,
 ) 
Value:
z += (w ^ x ^ y) + blk(i) + 0xCA62C1D6 + rol(v, 5); \
        w=rol(w, 30);

Definition at line 158 of file sha1-internal.c.


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_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
Returns:
0 on success, -1 of failure

Definition at line 38 of file sha1-internal.c.

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines

Generated on Sat Nov 21 23:19:42 2009 for hostapd by  doxygen 1.6.1