#include <crypto/internal/hash.h>
#include <linux/module.h>
#include <linux/crypto.h>
#include <crypto/streebog.h>
static const struct streebog_uint512 buffer0 = …;
static const struct streebog_uint512 buffer512 = …;
static const struct streebog_uint512 C[12] = …;
static const unsigned long long Ax[8][256] = …;
static void streebog_xor(const struct streebog_uint512 *x,
const struct streebog_uint512 *y,
struct streebog_uint512 *z)
{ … }
static void streebog_xlps(const struct streebog_uint512 *x,
const struct streebog_uint512 *y,
struct streebog_uint512 *data)
{ … }
static void streebog_round(int i, struct streebog_uint512 *Ki,
struct streebog_uint512 *data)
{ … }
static int streebog_init(struct shash_desc *desc)
{ … }
static void streebog_pad(struct streebog_state *ctx)
{ … }
static void streebog_add512(const struct streebog_uint512 *x,
const struct streebog_uint512 *y,
struct streebog_uint512 *r)
{ … }
static void streebog_g(struct streebog_uint512 *h,
const struct streebog_uint512 *N,
const struct streebog_uint512 *m)
{ … }
static void streebog_stage2(struct streebog_state *ctx, const u8 *data)
{ … }
static void streebog_stage3(struct streebog_state *ctx)
{ … }
static int streebog_update(struct shash_desc *desc, const u8 *data,
unsigned int len)
{ … }
static int streebog_final(struct shash_desc *desc, u8 *digest)
{ … }
static struct shash_alg algs[2] = …;
static int __init streebog_mod_init(void)
{ … }
static void __exit streebog_mod_fini(void)
{ … }
subsys_initcall(streebog_mod_init);
module_exit(streebog_mod_fini);
MODULE_LICENSE(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_ALIAS_CRYPTO(…) …;
MODULE_ALIAS_CRYPTO(…) …;
MODULE_ALIAS_CRYPTO(…) …;
MODULE_ALIAS_CRYPTO(…) …;