sha256-internal.c File Reference

SHA-256 hash implementation and interface functions. More...

#include "includes.h"
#include "common.h"
#include "sha256.h"
#include "crypto.h"
Include dependency graph for sha256-internal.c:

Go to the source code of this file.

Data Structures

struct  sha256_state

Defines

#define RORc(x, y)
#define Ch(x, y, z)   (z ^ (x & (y ^ z)))
#define Maj(x, y, z)   (((x | y) & z) | (x & y))
#define S(x, n)   RORc((x), (n))
#define R(x, n)   (((x)&0xFFFFFFFFUL)>>(n))
#define Sigma0(x)   (S(x, 2) ^ S(x, 13) ^ S(x, 22))
#define Sigma1(x)   (S(x, 6) ^ S(x, 11) ^ S(x, 25))
#define Gamma0(x)   (S(x, 7) ^ S(x, 18) ^ R(x, 3))
#define Gamma1(x)   (S(x, 17) ^ S(x, 19) ^ R(x, 10))
#define MIN(x, y)   (((x) < (y)) ? (x) : (y))
#define RND(a, b, c, d, e, f, g, h, i)
#define block_size   64

Functions

int sha256_vector (size_t num_elem, const u8 *addr[], const size_t *len, u8 *mac)
 SHA256 hash for data vector.

Detailed Description

SHA-256 hash implementation and interface functions.

Copyright
Copyright (c) 2003-2007, 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 sha256-internal.c.


Define Documentation

#define RND ( a,
b,
c,
d,
e,
f,
g,
h,
 ) 
Value:
t0 = h + Sigma1(e) + Ch(e, f, g) + K[i] + W[i]; \
        t1 = Sigma0(a) + Maj(a, b, c);                  \
        d += t0;                                        \
        h  = t0 + t1;
#define RORc ( x,
 ) 
Value:
( ((((unsigned long) (x) & 0xFFFFFFFFUL) >> (unsigned long) ((y) & 31)) | \
   ((unsigned long) (x) << (unsigned long) (32 - ((y) & 31)))) & 0xFFFFFFFFUL)

Definition at line 83 of file sha256-internal.c.


Function Documentation

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

SHA256 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 43 of file sha256-internal.c.

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines

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