linux/arch/x86/crypto/aegis128-aesni-glue.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * The AEGIS-128 Authenticated-Encryption Algorithm
 *   Glue for AES-NI + SSE2 implementation
 *
 * Copyright (c) 2017-2018 Ondrej Mosnacek <[email protected]>
 * Copyright (C) 2017-2018 Red Hat, Inc. All rights reserved.
 */

#include <crypto/internal/aead.h>
#include <crypto/internal/simd.h>
#include <crypto/internal/skcipher.h>
#include <crypto/scatterwalk.h>
#include <linux/module.h>
#include <asm/fpu/api.h>
#include <asm/cpu_device_id.h>

#define AEGIS128_BLOCK_ALIGN
#define AEGIS128_BLOCK_SIZE
#define AEGIS128_NONCE_SIZE
#define AEGIS128_STATE_BLOCKS
#define AEGIS128_KEY_SIZE
#define AEGIS128_MIN_AUTH_SIZE
#define AEGIS128_MAX_AUTH_SIZE

asmlinkage void crypto_aegis128_aesni_init(void *state, void *key, void *iv);

asmlinkage void crypto_aegis128_aesni_ad(
		void *state, unsigned int length, const void *data);

asmlinkage void crypto_aegis128_aesni_enc(
		void *state, unsigned int length, const void *src, void *dst);

asmlinkage void crypto_aegis128_aesni_dec(
		void *state, unsigned int length, const void *src, void *dst);

asmlinkage void crypto_aegis128_aesni_enc_tail(
		void *state, unsigned int length, const void *src, void *dst);

asmlinkage void crypto_aegis128_aesni_dec_tail(
		void *state, unsigned int length, const void *src, void *dst);

asmlinkage void crypto_aegis128_aesni_final(
		void *state, void *tag_xor, unsigned int cryptlen,
		unsigned int assoclen);

struct aegis_block {};

struct aegis_state {};

struct aegis_ctx {};

struct aegis_crypt_ops {};

static void crypto_aegis128_aesni_process_ad(
		struct aegis_state *state, struct scatterlist *sg_src,
		unsigned int assoclen)
{}

static void crypto_aegis128_aesni_process_crypt(
		struct aegis_state *state, struct skcipher_walk *walk,
		const struct aegis_crypt_ops *ops)
{}

static struct aegis_ctx *crypto_aegis128_aesni_ctx(struct crypto_aead *aead)
{}

static int crypto_aegis128_aesni_setkey(struct crypto_aead *aead, const u8 *key,
					unsigned int keylen)
{}

static int crypto_aegis128_aesni_setauthsize(struct crypto_aead *tfm,
						unsigned int authsize)
{}

static void crypto_aegis128_aesni_crypt(struct aead_request *req,
					struct aegis_block *tag_xor,
					unsigned int cryptlen,
					const struct aegis_crypt_ops *ops)
{}

static int crypto_aegis128_aesni_encrypt(struct aead_request *req)
{}

static int crypto_aegis128_aesni_decrypt(struct aead_request *req)
{}

static int crypto_aegis128_aesni_init_tfm(struct crypto_aead *aead)
{}

static void crypto_aegis128_aesni_exit_tfm(struct crypto_aead *aead)
{}

static struct aead_alg crypto_aegis128_aesni_alg =;

static struct simd_aead_alg *simd_alg;

static int __init crypto_aegis128_aesni_module_init(void)
{}

static void __exit crypto_aegis128_aesni_module_exit(void)
{}

module_init();
module_exit(crypto_aegis128_aesni_module_exit);

MODULE_LICENSE();
MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_ALIAS_CRYPTO();
MODULE_ALIAS_CRYPTO();