linux/arch/x86/crypto/camellia_glue.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Glue Code for assembler optimized version of Camellia
 *
 * Copyright (c) 2012 Jussi Kivilinna <[email protected]>
 *
 * Camellia parts based on code by:
 *  Copyright (C) 2006 NTT (Nippon Telegraph and Telephone Corporation)
 */

#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"

/* regular block cipher functions */
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();

/* 2-way parallel cipher functions */
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)
{}

/* camellia sboxes */
__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] =;

/* key constants */
#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

/* macros */
#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();