#include <asm/unaligned.h>
#include <crypto/sha256_base.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/string.h>
static const u32 SHA256_K[] = …;
static inline u32 Ch(u32 x, u32 y, u32 z)
{ … }
static inline u32 Maj(u32 x, u32 y, u32 z)
{ … }
#define e0(x) …
#define e1(x) …
#define s0(x) …
#define s1(x) …
static inline void LOAD_OP(int I, u32 *W, const u8 *input)
{ … }
static inline void BLEND_OP(int I, u32 *W)
{ … }
#define SHA256_ROUND(i, a, b, c, d, e, f, g, h) …
static void sha256_transform(u32 *state, const u8 *input, u32 *W)
{ … }
static void sha256_transform_blocks(struct sha256_state *sctx,
const u8 *input, int blocks)
{ … }
void sha256_update(struct sha256_state *sctx, const u8 *data, unsigned int len)
{ … }
EXPORT_SYMBOL(…);
static void __sha256_final(struct sha256_state *sctx, u8 *out, int digest_size)
{ … }
void sha256_final(struct sha256_state *sctx, u8 *out)
{ … }
EXPORT_SYMBOL(…);
void sha224_final(struct sha256_state *sctx, u8 *out)
{ … }
EXPORT_SYMBOL(…);
void sha256(const u8 *data, unsigned int len, u8 *out)
{ … }
EXPORT_SYMBOL(…);
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;