xref: /OK3568_Linux_fs/kernel/drivers/crypto/rockchip/rk_crypto_skcipher_utils.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 
3 /* Copyright (c) 2022 Rockchip Electronics Co. Ltd. */
4 
5 #ifndef __RK_CRYPTO_SKCIPHER_UTILS_H__
6 #define __RK_CRYPTO_SKCIPHER_UTILS_H__
7 
8 #include <crypto/aead.h>
9 #include <crypto/skcipher.h>
10 #include <crypto/internal/skcipher.h>
11 
12 #include "rk_crypto_core.h"
13 #include "rk_crypto_utils.h"
14 
15 #define RK_MAX_TAG_SIZE		32
16 
17 struct rk_crypto_algt *rk_cipher_get_algt(struct crypto_skcipher *tfm);
18 
19 struct rk_crypto_algt *rk_aead_get_algt(struct crypto_aead *tfm);
20 
21 struct rk_alg_ctx *rk_cipher_alg_ctx(struct rk_crypto_dev *rk_dev);
22 
23 struct rk_cipher_ctx *rk_cipher_ctx_cast(struct rk_crypto_dev *rk_dev);
24 
25 int rk_cipher_fallback(struct skcipher_request *req, struct rk_cipher_ctx *ctx, bool encrypt);
26 
27 int rk_cipher_setkey(struct crypto_skcipher *cipher, const u8 *key, unsigned int keylen);
28 
29 int rk_ablk_rx(struct rk_crypto_dev *rk_dev);
30 
31 int rk_ablk_start(struct rk_crypto_dev *rk_dev);
32 
33 int rk_skcipher_handle_req(struct rk_crypto_dev *rk_dev, struct skcipher_request *req);
34 
35 int rk_aead_fallback(struct aead_request *req, struct rk_cipher_ctx *ctx, bool encrypt);
36 
37 int rk_aead_setkey(struct crypto_aead *cipher, const u8 *key, unsigned int keylen);
38 
39 int rk_aead_start(struct rk_crypto_dev *rk_dev);
40 
41 int rk_aead_gcm_setauthsize(struct crypto_aead *tfm, unsigned int authsize);
42 
43 int rk_aead_handle_req(struct rk_crypto_dev *rk_dev, struct aead_request *req);
44 
45 #endif
46 
47