
#include "Util/sha2.H"#include <string.h>
Go to the source code of this file.
Defines | |
| #define | GET_UINT32(n, b, i) |
| #define | PUT_UINT32(n, b, i) |
| #define | SHR(x, n) ((x & 0xFFFFFFFF) >> n) |
| #define | ROTR(x, n) (SHR(x,n) | (x << (32 - n))) |
| #define | S0(x) (ROTR(x, 7) ^ ROTR(x,18) ^ SHR(x, 3)) |
| #define | S1(x) (ROTR(x,17) ^ ROTR(x,19) ^ SHR(x,10)) |
| #define | S2(x) (ROTR(x, 2) ^ ROTR(x,13) ^ ROTR(x,22)) |
| #define | S3(x) (ROTR(x, 6) ^ ROTR(x,11) ^ ROTR(x,25)) |
| #define | F0(x, y, z) ((x & y) | (z & (x | y))) |
| #define | F1(x, y, z) (z ^ (x & (y ^ z))) |
| #define | R(t) |
| #define | P(a, b, c, d, e, f, g, h, x, K) |
Typedefs | |
| typedef byte | uint8 |
Functions | |
| void | sha256_starts (sha256_context *ctx) |
| void | sha256_process (sha256_context *ctx, const uint8 data[64]) |
| void | sha256_update (sha256_context *ctx, const uint8 *input, uint32 length) |
| void | sha256_finish (sha256_context *ctx, uint8 digest[32]) |
Variables | |
| static uint8 | sha256_padding [64] |
general sha2 (256-bit) message-digest implementation
Definition in file sha2.C.
| #define GET_UINT32 | ( | n, | |||
| b, | |||||
| i | ) |
| #define P | ( | a, | |||
| b, | |||||
| c, | |||||
| d, | |||||
| e, | |||||
| f, | |||||
| g, | |||||
| h, | |||||
| x, | |||||
| K | ) |
{ \
temp1 = h + S3(e) + F1(e,f,g) + K + x; \
temp2 = S2(a) + F0(a,b,c); \
d += temp1; h = temp1 + temp2; \
}
| #define PUT_UINT32 | ( | n, | |||
| b, | |||||
| i | ) |
| #define R | ( | t | ) |
( \
W[t] = S1(W[t - 2]) + W[t - 7] + \
S0(W[t - 15]) + W[t - 16] \
)
1.6.3