#include <asm/unaligned.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/bitops.h>
#include <crypto/internal/blake2b.h>
#include <crypto/internal/hash.h>
static const u8 blake2b_sigma[12][16] = …;
static void blake2b_increment_counter(struct blake2b_state *S, const u64 inc)
{ … }
#define G …
#define ROUND …
static void blake2b_compress_one_generic(struct blake2b_state *S,
const u8 block[BLAKE2B_BLOCK_SIZE])
{ … }
#undef G
#undef ROUND
void blake2b_compress_generic(struct blake2b_state *state,
const u8 *block, size_t nblocks, u32 inc)
{ … }
EXPORT_SYMBOL(…);
static int crypto_blake2b_update_generic(struct shash_desc *desc,
const u8 *in, unsigned int inlen)
{ … }
static int crypto_blake2b_final_generic(struct shash_desc *desc, u8 *out)
{ … }
#define BLAKE2B_ALG(name, driver_name, digest_size) …
static struct shash_alg blake2b_algs[] = …;
static int __init blake2b_mod_init(void)
{ … }
static void __exit blake2b_mod_fini(void)
{ … }
subsys_initcall(blake2b_mod_init);
module_exit(blake2b_mod_fini);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS_CRYPTO(…) …;
MODULE_ALIAS_CRYPTO(…) …;
MODULE_ALIAS_CRYPTO(…) …;
MODULE_ALIAS_CRYPTO(…) …;
MODULE_ALIAS_CRYPTO(…) …;
MODULE_ALIAS_CRYPTO(…) …;
MODULE_ALIAS_CRYPTO(…) …;
MODULE_ALIAS_CRYPTO(…) …;