• Home
  • Raw
  • Download

Lines Matching refs:tctx

122 static struct ocs_aes_dev *kmb_ocs_aes_find_dev(struct ocs_aes_tctx *tctx)  in kmb_ocs_aes_find_dev()  argument
128 if (tctx->aes_dev) { in kmb_ocs_aes_find_dev()
129 aes_dev = tctx->aes_dev; in kmb_ocs_aes_find_dev()
135 tctx->aes_dev = aes_dev; in kmb_ocs_aes_find_dev()
168 static int save_key(struct ocs_aes_tctx *tctx, const u8 *in_key, size_t key_len, in save_key() argument
177 memcpy(tctx->key, in_key, key_len); in save_key()
178 tctx->key_len = key_len; in save_key()
179 tctx->cipher = cipher; in save_key()
188 struct ocs_aes_tctx *tctx = crypto_skcipher_ctx(tfm); in kmb_ocs_sk_set_key() local
191 tctx->use_fallback = (cipher == OCS_AES && in kmb_ocs_sk_set_key()
194 if (!tctx->use_fallback) in kmb_ocs_sk_set_key()
195 return save_key(tctx, in_key, key_len, cipher); in kmb_ocs_sk_set_key()
197 crypto_sync_skcipher_clear_flags(tctx->sw_cipher.sk, in kmb_ocs_sk_set_key()
199 crypto_sync_skcipher_set_flags(tctx->sw_cipher.sk, in kmb_ocs_sk_set_key()
203 return crypto_sync_skcipher_setkey(tctx->sw_cipher.sk, in_key, key_len); in kmb_ocs_sk_set_key()
210 struct ocs_aes_tctx *tctx = crypto_aead_ctx(tfm); in kmb_ocs_aead_set_key() local
213 tctx->use_fallback = (cipher == OCS_AES && in kmb_ocs_aead_set_key()
216 if (!tctx->use_fallback) in kmb_ocs_aead_set_key()
217 return save_key(tctx, in_key, key_len, cipher); in kmb_ocs_aead_set_key()
219 crypto_aead_clear_flags(tctx->sw_cipher.aead, CRYPTO_TFM_REQ_MASK); in kmb_ocs_aead_set_key()
220 crypto_aead_set_flags(tctx->sw_cipher.aead, in kmb_ocs_aead_set_key()
223 return crypto_aead_setkey(tctx->sw_cipher.aead, in_key, key_len); in kmb_ocs_aead_set_key()
318 struct ocs_aes_tctx *tctx = crypto_skcipher_ctx(tfm); in kmb_ocs_sk_common() local
322 if (tctx->use_fallback) { in kmb_ocs_sk_common()
323 SYNC_SKCIPHER_REQUEST_ON_STACK(subreq, tctx->sw_cipher.sk); in kmb_ocs_sk_common()
325 skcipher_request_set_sync_tfm(subreq, tctx->sw_cipher.sk); in kmb_ocs_sk_common()
353 aes_dev = kmb_ocs_aes_find_dev(tctx); in kmb_ocs_sk_common()
357 if (cipher != tctx->cipher) in kmb_ocs_sk_common()
381 struct ocs_aes_tctx *tctx = crypto_skcipher_ctx(tfm); in kmb_ocs_sk_dma_cleanup() local
382 struct device *dev = tctx->aes_dev->dev; in kmb_ocs_sk_dma_cleanup()
405 struct ocs_aes_tctx *tctx = crypto_skcipher_ctx(tfm); in kmb_ocs_sk_prepare_inplace() local
427 rctx->dst_dma_count = dma_map_sg(tctx->aes_dev->dev, req->dst, in kmb_ocs_sk_prepare_inplace()
430 dev_err(tctx->aes_dev->dev, "Failed to map destination sg\n"); in kmb_ocs_sk_prepare_inplace()
435 rc = ocs_create_linked_list_from_sg(tctx->aes_dev, req->dst, in kmb_ocs_sk_prepare_inplace()
454 struct ocs_aes_tctx *tctx = crypto_skcipher_ctx(tfm); in kmb_ocs_sk_prepare_notinplace() local
462 rctx->src_dma_count = dma_map_sg(tctx->aes_dev->dev, req->src, in kmb_ocs_sk_prepare_notinplace()
465 dev_err(tctx->aes_dev->dev, "Failed to map source sg\n"); in kmb_ocs_sk_prepare_notinplace()
470 rc = ocs_create_linked_list_from_sg(tctx->aes_dev, req->src, in kmb_ocs_sk_prepare_notinplace()
477 rctx->dst_dma_count = dma_map_sg(tctx->aes_dev->dev, req->dst, in kmb_ocs_sk_prepare_notinplace()
480 dev_err(tctx->aes_dev->dev, "Failed to map destination sg\n"); in kmb_ocs_sk_prepare_notinplace()
485 rc = ocs_create_linked_list_from_sg(tctx->aes_dev, req->dst, in kmb_ocs_sk_prepare_notinplace()
502 rc = ocs_aes_bypass_op(tctx->aes_dev, rctx->dst_dll.dma_addr, in kmb_ocs_sk_prepare_notinplace()
521 struct ocs_aes_tctx *tctx = crypto_skcipher_ctx(tfm); in kmb_ocs_sk_run() local
522 struct ocs_aes_dev *aes_dev = tctx->aes_dev; in kmb_ocs_sk_run()
552 rc = ocs_aes_op(aes_dev, rctx->mode, tctx->cipher, rctx->instruction, in kmb_ocs_sk_run()
643 struct ocs_aes_tctx *tctx = crypto_aead_ctx(crypto_aead_reqtfm(req)); in kmb_ocs_aead_common() local
648 if (tctx->use_fallback) { in kmb_ocs_aead_common()
651 aead_request_set_tfm(subreq, tctx->sw_cipher.aead); in kmb_ocs_aead_common()
657 rc = crypto_aead_setauthsize(tctx->sw_cipher.aead, in kmb_ocs_aead_common()
671 dd = kmb_ocs_aes_find_dev(tctx); in kmb_ocs_aead_common()
675 if (cipher != tctx->cipher) in kmb_ocs_aead_common()
687 struct ocs_aes_tctx *tctx = crypto_aead_ctx(crypto_aead_reqtfm(req)); in kmb_ocs_aead_dma_cleanup() local
689 struct device *dev = tctx->aes_dev->dev; in kmb_ocs_aead_dma_cleanup()
724 struct ocs_aes_tctx *tctx = crypto_aead_ctx(crypto_aead_reqtfm(req)); in kmb_ocs_aead_dma_prepare() local
793 rctx->dst_dma_count = dma_map_sg(tctx->aes_dev->dev, req->dst, in kmb_ocs_aead_dma_prepare()
798 dev_err(tctx->aes_dev->dev, "Failed to map destination sg\n"); in kmb_ocs_aead_dma_prepare()
803 rc = ocs_create_linked_list_from_sg(tctx->aes_dev, req->dst, in kmb_ocs_aead_dma_prepare()
811 rc = ocs_create_linked_list_from_sg(tctx->aes_dev, req->dst, in kmb_ocs_aead_dma_prepare()
836 rc = ocs_create_linked_list_from_sg(tctx->aes_dev, req->dst, in kmb_ocs_aead_dma_prepare()
842 rc = ocs_create_linked_list_from_sg(tctx->aes_dev, req->dst, in kmb_ocs_aead_dma_prepare()
854 rctx->src_dma_count = dma_map_sg(tctx->aes_dev->dev, req->src, in kmb_ocs_aead_dma_prepare()
857 dev_err(tctx->aes_dev->dev, "Failed to map source sg\n"); in kmb_ocs_aead_dma_prepare()
862 rc = ocs_create_linked_list_from_sg(tctx->aes_dev, req->src, in kmb_ocs_aead_dma_prepare()
870 rc = ocs_create_linked_list_from_sg(tctx->aes_dev, req->src, in kmb_ocs_aead_dma_prepare()
881 rc = ocs_aes_bypass_op(tctx->aes_dev, rctx->aad_dst_dll.dma_addr, in kmb_ocs_aead_dma_prepare()
884 dev_err(tctx->aes_dev->dev, in kmb_ocs_aead_dma_prepare()
892 struct ocs_aes_tctx *tctx = crypto_aead_ctx(crypto_aead_reqtfm(req)); in kmb_ocs_aead_run() local
904 rc = ocs_aes_ccm_op(tctx->aes_dev, tctx->cipher, in kmb_ocs_aead_run()
913 rc = ocs_aes_gcm_op(tctx->aes_dev, tctx->cipher, in kmb_ocs_aead_run()
954 struct ocs_aes_tctx *tctx = crypto_skcipher_ctx(tfm); in kmb_ocs_aes_sk_do_one_request() local
957 if (!tctx->aes_dev) { in kmb_ocs_aes_sk_do_one_request()
962 err = ocs_aes_set_key(tctx->aes_dev, tctx->key_len, tctx->key, in kmb_ocs_aes_sk_do_one_request()
963 tctx->cipher); in kmb_ocs_aes_sk_do_one_request()
980 struct ocs_aes_tctx *tctx = crypto_aead_ctx(crypto_aead_reqtfm(req)); in kmb_ocs_aes_aead_do_one_request() local
983 if (!tctx->aes_dev) in kmb_ocs_aes_aead_do_one_request()
986 err = ocs_aes_set_key(tctx->aes_dev, tctx->key_len, tctx->key, in kmb_ocs_aes_aead_do_one_request()
987 tctx->cipher); in kmb_ocs_aes_aead_do_one_request()
994 crypto_finalize_aead_request(tctx->aes_dev->engine, req, err); in kmb_ocs_aes_aead_do_one_request()
1151 static inline int ocs_common_init(struct ocs_aes_tctx *tctx) in ocs_common_init() argument
1153 tctx->engine_ctx.op.prepare_request = NULL; in ocs_common_init()
1154 tctx->engine_ctx.op.do_one_request = kmb_ocs_aes_sk_do_one_request; in ocs_common_init()
1155 tctx->engine_ctx.op.unprepare_request = NULL; in ocs_common_init()
1163 struct ocs_aes_tctx *tctx = crypto_skcipher_ctx(tfm); in ocs_aes_init_tfm() local
1171 tctx->sw_cipher.sk = blk; in ocs_aes_init_tfm()
1175 return ocs_common_init(tctx); in ocs_aes_init_tfm()
1180 struct ocs_aes_tctx *tctx = crypto_skcipher_ctx(tfm); in ocs_sm4_init_tfm() local
1184 return ocs_common_init(tctx); in ocs_sm4_init_tfm()
1187 static inline void clear_key(struct ocs_aes_tctx *tctx) in clear_key() argument
1189 memzero_explicit(tctx->key, OCS_AES_KEYSIZE_256); in clear_key()
1192 if (tctx->aes_dev) in clear_key()
1193 ocs_aes_set_key(tctx->aes_dev, OCS_AES_KEYSIZE_256, in clear_key()
1194 tctx->key, OCS_AES); in clear_key()
1199 struct ocs_aes_tctx *tctx = crypto_skcipher_ctx(tfm); in ocs_exit_tfm() local
1201 clear_key(tctx); in ocs_exit_tfm()
1203 if (tctx->sw_cipher.sk) { in ocs_exit_tfm()
1204 crypto_free_sync_skcipher(tctx->sw_cipher.sk); in ocs_exit_tfm()
1205 tctx->sw_cipher.sk = NULL; in ocs_exit_tfm()
1209 static inline int ocs_common_aead_init(struct ocs_aes_tctx *tctx) in ocs_common_aead_init() argument
1211 tctx->engine_ctx.op.prepare_request = NULL; in ocs_common_aead_init()
1212 tctx->engine_ctx.op.do_one_request = kmb_ocs_aes_aead_do_one_request; in ocs_common_aead_init()
1213 tctx->engine_ctx.op.unprepare_request = NULL; in ocs_common_aead_init()
1221 struct ocs_aes_tctx *tctx = crypto_aead_ctx(tfm); in ocs_aes_aead_cra_init() local
1229 tctx->sw_cipher.aead = blk; in ocs_aes_aead_cra_init()
1234 crypto_aead_reqsize(tctx->sw_cipher.aead)))); in ocs_aes_aead_cra_init()
1236 return ocs_common_aead_init(tctx); in ocs_aes_aead_cra_init()
1264 struct ocs_aes_tctx *tctx = crypto_aead_ctx(tfm); in ocs_sm4_aead_cra_init() local
1268 return ocs_common_aead_init(tctx); in ocs_sm4_aead_cra_init()
1273 struct ocs_aes_tctx *tctx = crypto_aead_ctx(tfm); in ocs_aead_cra_exit() local
1275 clear_key(tctx); in ocs_aead_cra_exit()
1277 if (tctx->sw_cipher.aead) { in ocs_aead_cra_exit()
1278 crypto_free_aead(tctx->sw_cipher.aead); in ocs_aead_cra_exit()
1279 tctx->sw_cipher.aead = NULL; in ocs_aead_cra_exit()