#include <crypto/internal/hash.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/types.h>
#include <crypto/sha3.h>
#include <asm/unaligned.h>
#ifdef CONFIG_64BIT
#define SHA3_INLINE …
#else
#define SHA3_INLINE …
#endif
#define KECCAK_ROUNDS …
static const u64 keccakf_rndc[24] = …;
static SHA3_INLINE void keccakf_round(u64 st[25])
{ … }
static void keccakf(u64 st[25])
{ … }
int crypto_sha3_init(struct shash_desc *desc)
{ … }
EXPORT_SYMBOL(…);
int crypto_sha3_update(struct shash_desc *desc, const u8 *data,
unsigned int len)
{ … }
EXPORT_SYMBOL(…);
int crypto_sha3_final(struct shash_desc *desc, u8 *out)
{ … }
EXPORT_SYMBOL(…);
static struct shash_alg algs[] = …;
static int __init sha3_generic_mod_init(void)
{ … }
static void __exit sha3_generic_mod_fini(void)
{ … }
subsys_initcall(sha3_generic_mod_init);
module_exit(sha3_generic_mod_fini);
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_ALIAS_CRYPTO(…) …;
MODULE_ALIAS_CRYPTO(…) …;
MODULE_ALIAS_CRYPTO(…) …;
MODULE_ALIAS_CRYPTO(…) …;
MODULE_ALIAS_CRYPTO(…) …;
MODULE_ALIAS_CRYPTO(…) …;
MODULE_ALIAS_CRYPTO(…) …;
MODULE_ALIAS_CRYPTO(…) …;