]>
Commit | Line | Data |
---|---|---|
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 |
10 | struct serpent_lrw_ctx { |
11 | struct lrw_table_ctx lrw_table; | |
12 | struct serpent_ctx serpent_ctx; | |
13 | }; | |
14 | ||
15 | struct serpent_xts_ctx { | |
16 | struct serpent_ctx tweak_ctx; | |
17 | struct serpent_ctx crypt_ctx; | |
18 | }; | |
19 | ||
facd416f JK |
20 | asmlinkage void serpent_ecb_enc_8way_avx(struct serpent_ctx *ctx, u8 *dst, |
21 | const u8 *src); | |
22 | asmlinkage void serpent_ecb_dec_8way_avx(struct serpent_ctx *ctx, u8 *dst, | |
3387e7d6 JK |
23 | const u8 *src); |
24 | ||
facd416f JK |
25 | asmlinkage void serpent_cbc_dec_8way_avx(struct serpent_ctx *ctx, u8 *dst, |
26 | const u8 *src); | |
27 | asmlinkage void serpent_ctr_8way_avx(struct serpent_ctx *ctx, u8 *dst, | |
28 | const u8 *src, le128 *iv); | |
3387e7d6 | 29 | |
a05248ed JK |
30 | asmlinkage void serpent_xts_enc_8way_avx(struct serpent_ctx *ctx, u8 *dst, |
31 | const u8 *src, le128 *iv); | |
32 | asmlinkage void serpent_xts_dec_8way_avx(struct serpent_ctx *ctx, u8 *dst, | |
33 | const u8 *src, le128 *iv); | |
34 | ||
56d76c96 JK |
35 | extern void __serpent_crypt_ctr(void *ctx, u128 *dst, const u128 *src, |
36 | le128 *iv); | |
37 | ||
38 | extern void serpent_xts_enc(void *ctx, u128 *dst, const u128 *src, le128 *iv); | |
39 | extern void serpent_xts_dec(void *ctx, u128 *dst, const u128 *src, le128 *iv); | |
40 | ||
41 | extern int lrw_serpent_setkey(struct crypto_tfm *tfm, const u8 *key, | |
42 | unsigned int keylen); | |
43 | ||
44 | extern void lrw_serpent_exit_tfm(struct crypto_tfm *tfm); | |
45 | ||
46 | extern int xts_serpent_setkey(struct crypto_tfm *tfm, const u8 *key, | |
47 | unsigned int keylen); | |
48 | ||
3387e7d6 | 49 | #endif |