|
wpa_supplicant / hostapd 2.0
|
SHA-256 hash implementation and interface functions. More...
#include "includes.h"#include "common.h"#include "sha256.h"#include "sha256_i.h"#include "crypto.h"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) |
Functions | |
| int | sha256_vector (size_t num_elem, const u8 *addr[], const size_t *len, u8 *mac) |
| SHA256 hash for data vector. | |
| void | sha256_init (struct sha256_state *md) |
| int | sha256_process (struct sha256_state *md, const unsigned char *in, unsigned long inlen) |
| int | sha256_done (struct sha256_state *md, unsigned char *out) |
SHA-256 hash implementation and interface functions.
This software may be distributed under the terms of the BSD license. See README for more details.
| #define RND | ( | a, | |
| b, | |||
| c, | |||
| d, | |||
| e, | |||
| f, | |||
| g, | |||
| h, | |||
| i | |||
| ) |
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, | |
| y | |||
| ) |
( ((((unsigned long) (x) & 0xFFFFFFFFUL) >> (unsigned long) ((y) & 31)) | \ ((unsigned long) (x) << (unsigned long) (32 - ((y) & 31)))) & 0xFFFFFFFFUL)
| int sha256_done | ( | struct sha256_state * | md, |
| unsigned char * | out | ||
| ) |
Terminate the hash to get the digest
| md | The hash state |
| out | [out] The destination of the hash (32 bytes) |
| int sha256_process | ( | struct sha256_state * | md, |
| const unsigned char * | in, | ||
| unsigned long | inlen | ||
| ) |
Process a block of memory though the hash
| md | The hash state |
| in | The data to hash |
| inlen | The length of the data (octets) |
| int sha256_vector | ( | size_t | num_elem, |
| const u8 * | addr[], | ||
| const size_t * | len, | ||
| u8 * | mac | ||
| ) |
SHA256 hash for data vector.
| 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 |
1.7.3