]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blame - arch/x86/include/asm/crypto/serpent-avx.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
[mirror_ubuntu-jammy-kernel.git] / arch / x86 / include / asm / crypto / serpent-avx.h
CommitLineData
b2441318 1/* SPDX-License-Identifier: GPL-2.0 */
3387e7d6
JK
2#ifndef ASM_X86_SERPENT_AVX_H
3#define ASM_X86_SERPENT_AVX_H
4
5#include <linux/crypto.h>
6#include <crypto/serpent.h>
7
8#define SERPENT_PARALLEL_BLOCKS 8
9
56d76c96
JK
10struct serpent_lrw_ctx {
11 struct lrw_table_ctx lrw_table;
12 struct serpent_ctx serpent_ctx;
13};
14
15struct serpent_xts_ctx {
16 struct serpent_ctx tweak_ctx;
17 struct serpent_ctx crypt_ctx;
18};
19
facd416f
JK
20asmlinkage void serpent_ecb_enc_8way_avx(struct serpent_ctx *ctx, u8 *dst,
21 const u8 *src);
22asmlinkage void serpent_ecb_dec_8way_avx(struct serpent_ctx *ctx, u8 *dst,
3387e7d6
JK
23 const u8 *src);
24
facd416f
JK
25asmlinkage void serpent_cbc_dec_8way_avx(struct serpent_ctx *ctx, u8 *dst,
26 const u8 *src);
27asmlinkage void serpent_ctr_8way_avx(struct serpent_ctx *ctx, u8 *dst,
28 const u8 *src, le128 *iv);
3387e7d6 29
a05248ed
JK
30asmlinkage void serpent_xts_enc_8way_avx(struct serpent_ctx *ctx, u8 *dst,
31 const u8 *src, le128 *iv);
32asmlinkage void serpent_xts_dec_8way_avx(struct serpent_ctx *ctx, u8 *dst,
33 const u8 *src, le128 *iv);
34
56d76c96
JK
35extern void __serpent_crypt_ctr(void *ctx, u128 *dst, const u128 *src,
36 le128 *iv);
37
38extern void serpent_xts_enc(void *ctx, u128 *dst, const u128 *src, le128 *iv);
39extern void serpent_xts_dec(void *ctx, u128 *dst, const u128 *src, le128 *iv);
40
41extern int lrw_serpent_setkey(struct crypto_tfm *tfm, const u8 *key,
42 unsigned int keylen);
43
44extern void lrw_serpent_exit_tfm(struct crypto_tfm *tfm);
45
46extern int xts_serpent_setkey(struct crypto_tfm *tfm, const u8 *key,
47 unsigned int keylen);
48
3387e7d6 49#endif