1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 #ifndef ASM_X86_SM4_AVX_H
3 #define ASM_X86_SM4_AVX_H
4 
5 #include <linux/types.h>
6 #include <crypto/sm4.h>
7 
8 typedef void (*sm4_crypt_func)(const u32 *rk, u8 *dst, const u8 *src, u8 *iv);
9 
10 int sm4_avx_ecb_encrypt(struct skcipher_request *req);
11 int sm4_avx_ecb_decrypt(struct skcipher_request *req);
12 
13 int sm4_cbc_encrypt(struct skcipher_request *req);
14 int sm4_avx_cbc_decrypt(struct skcipher_request *req,
15 			unsigned int bsize, sm4_crypt_func func);
16 
17 int sm4_cfb_encrypt(struct skcipher_request *req);
18 int sm4_avx_cfb_decrypt(struct skcipher_request *req,
19 			unsigned int bsize, sm4_crypt_func func);
20 
21 int sm4_avx_ctr_crypt(struct skcipher_request *req,
22 			unsigned int bsize, sm4_crypt_func func);
23 
24 #endif
25