#include <asm/unaligned.h>
#include <linux/crypto.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/types.h>
#include <crypto/algapi.h>
#include "camellia.h"
#include "ecb_cbc_helpers.h"
asmlinkage void __camellia_enc_blk(const void *ctx, u8 *dst, const u8 *src,
bool xor);
EXPORT_SYMBOL_GPL(…);
asmlinkage void camellia_dec_blk(const void *ctx, u8 *dst, const u8 *src);
EXPORT_SYMBOL_GPL(…);
asmlinkage void __camellia_enc_blk_2way(const void *ctx, u8 *dst, const u8 *src,
bool xor);
EXPORT_SYMBOL_GPL(…);
asmlinkage void camellia_dec_blk_2way(const void *ctx, u8 *dst, const u8 *src);
EXPORT_SYMBOL_GPL(…);
static void camellia_encrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src)
{ … }
static void camellia_decrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src)
{ … }
__visible const u64 camellia_sp10011110[256] = …;
__visible const u64 camellia_sp22000222[256] = …;
__visible const u64 camellia_sp03303033[256] = …;
__visible const u64 camellia_sp00444404[256] = …;
__visible const u64 camellia_sp02220222[256] = …;
__visible const u64 camellia_sp30333033[256] = …;
__visible const u64 camellia_sp44044404[256] = …;
__visible const u64 camellia_sp11101110[256] = …;
#define CAMELLIA_SIGMA1L …
#define CAMELLIA_SIGMA1R …
#define CAMELLIA_SIGMA2L …
#define CAMELLIA_SIGMA2R …
#define CAMELLIA_SIGMA3L …
#define CAMELLIA_SIGMA3R …
#define CAMELLIA_SIGMA4L …
#define CAMELLIA_SIGMA4R …
#define CAMELLIA_SIGMA5L …
#define CAMELLIA_SIGMA5R …
#define CAMELLIA_SIGMA6L …
#define CAMELLIA_SIGMA6R …
#define ROLDQ(l, r, bits) …
#define CAMELLIA_F(x, kl, kr, y) …
#define SET_SUBKEY_LR(INDEX, sRL) …
static void camellia_setup_tail(u64 *subkey, u64 *subRL, int max)
{ … }
static void camellia_setup128(const unsigned char *key, u64 *subkey)
{ … }
static void camellia_setup256(const unsigned char *key, u64 *subkey)
{ … }
static void camellia_setup192(const unsigned char *key, u64 *subkey)
{ … }
int __camellia_setkey(struct camellia_ctx *cctx, const unsigned char *key,
unsigned int key_len)
{ … }
EXPORT_SYMBOL_GPL(…);
static int camellia_setkey(struct crypto_tfm *tfm, const u8 *key,
unsigned int key_len)
{ … }
static int camellia_setkey_skcipher(struct crypto_skcipher *tfm, const u8 *key,
unsigned int key_len)
{ … }
void camellia_decrypt_cbc_2way(const void *ctx, u8 *dst, const u8 *src)
{ … }
EXPORT_SYMBOL_GPL(…);
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 camellia_cipher_alg = …;
static struct skcipher_alg camellia_skcipher_algs[] = …;
static bool is_blacklisted_cpu(void)
{ … }
static int force;
module_param(force, int, 0);
MODULE_PARM_DESC(…) …;
static int __init camellia_init(void)
{ … }
static void __exit camellia_fini(void)
{ … }
module_init(…) …;
module_exit(camellia_fini);
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_ALIAS_CRYPTO(…) …;
MODULE_ALIAS_CRYPTO(…) …;