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.
 1.6.1