#include <crypto/algapi.h>
#include <crypto/blowfish.h>
#include <crypto/internal/skcipher.h>
#include <linux/crypto.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/types.h>
#include "ecb_cbc_helpers.h"
asmlinkage void blowfish_enc_blk(struct bf_ctx *ctx, u8 *dst, const u8 *src);
asmlinkage void blowfish_dec_blk(struct bf_ctx *ctx, u8 *dst, const u8 *src);
asmlinkage void blowfish_enc_blk_4way(struct bf_ctx *ctx, u8 *dst,
const u8 *src);
asmlinkage void __blowfish_dec_blk_4way(struct bf_ctx *ctx, u8 *dst,
const u8 *src, bool cbc);
static inline void blowfish_dec_ecb_4way(struct bf_ctx *ctx, u8 *dst,
const u8 *src)
{ … }
static inline void blowfish_dec_cbc_4way(struct bf_ctx *ctx, u8 *dst,
const u8 *src)
{ … }
static void blowfish_encrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src)
{ … }
static void blowfish_decrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src)
{ … }
static int blowfish_setkey_skcipher(struct crypto_skcipher *tfm,
const u8 *key, unsigned int keylen)
{ … }
static int ecb_encrypt(struct skcipher_request *req)
{ … }
static int ecb_decrypt(struct skcipher_request *req)
{ … }
static int cbc_encrypt(struct skcipher_request *req)
{ … }
static int cbc_decrypt(struct skcipher_request *req)
{ … }
static struct crypto_alg bf_cipher_alg = …;
static struct skcipher_alg bf_skcipher_algs[] = …;
static bool is_blacklisted_cpu(void)
{ … }
static int force;
module_param(force, int, 0);
MODULE_PARM_DESC(…) …;
static int __init blowfish_init(void)
{ … }
static void __exit blowfish_fini(void)
{ … }
module_init(…) …;
module_exit(blowfish_fini);
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_ALIAS_CRYPTO(…) …;
MODULE_ALIAS_CRYPTO(…) …;