#include <crypto/internal/hash.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/string.h>
#include <linux/types.h>
#include <asm/byteorder.h>
#define MD4_DIGEST_SIZE …
#define MD4_HMAC_BLOCK_SIZE …
#define MD4_BLOCK_WORDS …
#define MD4_HASH_WORDS …
struct md4_ctx { … };
static inline u32 lshift(u32 x, unsigned int s)
{ … }
static inline u32 F(u32 x, u32 y, u32 z)
{ … }
static inline u32 G(u32 x, u32 y, u32 z)
{ … }
static inline u32 H(u32 x, u32 y, u32 z)
{ … }
#define ROUND1(a,b,c,d,k,s) …
#define ROUND2(a,b,c,d,k,s) …
#define ROUND3(a,b,c,d,k,s) …
static void md4_transform(u32 *hash, u32 const *in)
{ … }
static inline void md4_transform_helper(struct md4_ctx *ctx)
{ … }
static int md4_init(struct shash_desc *desc)
{ … }
static int md4_update(struct shash_desc *desc, const u8 *data, unsigned int len)
{ … }
static int md4_final(struct shash_desc *desc, u8 *out)
{ … }
static struct shash_alg alg = …;
static int __init md4_mod_init(void)
{ … }
static void __exit md4_mod_fini(void)
{ … }
subsys_initcall(md4_mod_init);
module_exit(md4_mod_fini);
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_ALIAS_CRYPTO(…) …;