25#define sha1_blk0(i) ( W[i] = bswap32(W[i]) )
26#define sha1_blk_xor4(i) \
27 xor4(W[(i + 13) & 15], W[(i + 8) & 15], W[(i + 2) & 15], W[i & 15])
28#define sha1_blk(i) ( W[i & 15] = rol32(sha1_blk_xor4(i), 1) )
30#define sha1_r0(a, b, c, d, e, i) \
31 e += xandx(b, c, d) + sha1_blk0(i) + k[0] + rol32(a, 5); \
34#define sha1_r1(a, b, c, d, e, i) \
35 e += xandx(b, c, d) + sha1_blk(i) + k[0] + rol32(a, 5); \
38#define sha1_r2(a, b, c, d, e, i) \
39 e += xor3(b, c, d) + sha1_blk(i) + k[1] + rol32(a, 5); \
41#define sha1_r3(a, b, c, d, e, i) \
42 e += (((b | c) & d) | (b & c)) + sha1_blk(i) + k[2] + rol32(a, 5); \
44#define sha1_r4(a, b, c, d, e, i) \
45 e += xor3(b, c, d) + sha1_blk(i) + k[3] + rol32(a, 5); \
63void sha1(
const void *in,
size_t inlen,
void *out);
67 void test_kcu_sha1(
const void *in,
size_t *inlen,
size_t max_inlen,
void sha1_final(SHA1_CTX *ctx, void *out)
Finalize a SHA1 message digest.
Definition: sha1.c:185
void sha1_update(SHA1_CTX *ctx, const void *in, size_t inlen)
Add inlen bytes from in to a SHA1 context for hashing.
Definition: sha1.c:158
void sha1(const void *in, size_t inlen, void *out)
Convenient all-in-one SHA1 computation.
Definition: sha1.c:230
void sha1_init(SHA1_CTX *ctx)
Initialize a SHA1 context.
Definition: sha1.c:141
uint32_t datalen
Length of buffered input.
Definition: sha1.h:52
Device utilities and includes support.