SHA-256 hash implementation and interface functions. More...
#include "includes.h"
#include "common.h"
#include "sha256.h"
#include "crypto.h"
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. |
SHA-256 hash implementation and interface functions.
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 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)
Definition at line 83 of file sha256-internal.c.
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 |
Definition at line 43 of file sha256-internal.c.