#include <crypto/algapi.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/mm.h>
#include <asm/byteorder.h>
#include <linux/types.h>
#define TEA_KEY_SIZE …
#define TEA_BLOCK_SIZE …
#define TEA_ROUNDS …
#define TEA_DELTA …
#define XTEA_KEY_SIZE …
#define XTEA_BLOCK_SIZE …
#define XTEA_ROUNDS …
#define XTEA_DELTA …
struct tea_ctx { … };
struct xtea_ctx { … };
static int tea_setkey(struct crypto_tfm *tfm, const u8 *in_key,
unsigned int key_len)
{ … }
static void tea_encrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src)
{ … }
static void tea_decrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src)
{ … }
static int xtea_setkey(struct crypto_tfm *tfm, const u8 *in_key,
unsigned int key_len)
{ … }
static void xtea_encrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src)
{ … }
static void xtea_decrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src)
{ … }
static void xeta_encrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src)
{ … }
static void xeta_decrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src)
{ … }
static struct crypto_alg tea_algs[3] = …;
static int __init tea_mod_init(void)
{ … }
static void __exit tea_mod_fini(void)
{ … }
MODULE_ALIAS_CRYPTO(…) …;
MODULE_ALIAS_CRYPTO(…) …;
MODULE_ALIAS_CRYPTO(…) …;
subsys_initcall(tea_mod_init);
module_exit(tea_mod_fini);
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;