#include <crypto/algapi.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/types.h>
#include <linux/errno.h>
#include <asm/byteorder.h>
#define SEED_NUM_KCONSTANTS …
#define SEED_KEY_SIZE …
#define SEED_BLOCK_SIZE …
#define SEED_KEYSCHED_LEN …
static inline u8
byte(const u32 x, const unsigned n)
{ … }
struct seed_ctx { … };
static const u32 SS0[256] = …;
static const u32 SS1[256] = …;
static const u32 SS2[256] = …;
static const u32 SS3[256] = …;
static const u32 KC[SEED_NUM_KCONSTANTS] = …;
#define OP(X1, X2, X3, X4, rbase) …
static int seed_set_key(struct crypto_tfm *tfm, const u8 *in_key,
unsigned int key_len)
{ … }
static void seed_encrypt(struct crypto_tfm *tfm, u8 *out, const u8 *in)
{ … }
static void seed_decrypt(struct crypto_tfm *tfm, u8 *out, const u8 *in)
{ … }
static struct crypto_alg seed_alg = …;
static int __init seed_init(void)
{ … }
static void __exit seed_fini(void)
{ … }
subsys_initcall(seed_init);
module_exit(seed_fini);
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_AUTHOR(…) …;
MODULE_ALIAS_CRYPTO(…) …;