Lines Matching refs:ctx
235 static inline void append_key_ahash(u32 *desc, struct caam_hash_ctx *ctx) in append_key_ahash() argument
237 append_key_as_imm(desc, ctx->key, ctx->split_key_pad_len, in append_key_ahash()
238 ctx->split_key_len, CLASS_2 | in append_key_ahash()
243 static inline void init_sh_desc_key_ahash(u32 *desc, struct caam_hash_ctx *ctx) in init_sh_desc_key_ahash() argument
249 if (ctx->split_key_len) { in init_sh_desc_key_ahash()
254 append_key_ahash(desc, ctx); in init_sh_desc_key_ahash()
287 struct caam_hash_ctx *ctx) in ahash_ctx_data_to_out() argument
289 init_sh_desc_key_ahash(desc, ctx); in ahash_ctx_data_to_out()
293 LDST_CLASS_2_CCB | ctx->ctx_len); in ahash_ctx_data_to_out()
306 int digestsize, struct caam_hash_ctx *ctx) in ahash_data_to_out() argument
308 init_sh_desc_key_ahash(desc, ctx); in ahash_data_to_out()
321 struct caam_hash_ctx *ctx = crypto_ahash_ctx(ahash); in ahash_set_sh_desc() local
323 struct device *jrdev = ctx->jrdev; in ahash_set_sh_desc()
327 if (ctx->split_key_len) in ahash_set_sh_desc()
331 desc = ctx->sh_desc_update; in ahash_set_sh_desc()
337 LDST_CLASS_2_CCB | ctx->ctx_len); in ahash_set_sh_desc()
340 append_operation(desc, ctx->alg_type | OP_ALG_AS_UPDATE | in ahash_set_sh_desc()
344 ahash_append_load_str(desc, ctx->ctx_len); in ahash_set_sh_desc()
346 ctx->sh_desc_update_dma = dma_map_single(jrdev, desc, desc_bytes(desc), in ahash_set_sh_desc()
348 if (dma_mapping_error(jrdev, ctx->sh_desc_update_dma)) { in ahash_set_sh_desc()
359 desc = ctx->sh_desc_update_first; in ahash_set_sh_desc()
361 ahash_data_to_out(desc, have_key | ctx->alg_type, OP_ALG_AS_INIT, in ahash_set_sh_desc()
362 ctx->ctx_len, ctx); in ahash_set_sh_desc()
364 ctx->sh_desc_update_first_dma = dma_map_single(jrdev, desc, in ahash_set_sh_desc()
367 if (dma_mapping_error(jrdev, ctx->sh_desc_update_first_dma)) { in ahash_set_sh_desc()
378 desc = ctx->sh_desc_fin; in ahash_set_sh_desc()
380 ahash_ctx_data_to_out(desc, have_key | ctx->alg_type, in ahash_set_sh_desc()
381 OP_ALG_AS_FINALIZE, digestsize, ctx); in ahash_set_sh_desc()
383 ctx->sh_desc_fin_dma = dma_map_single(jrdev, desc, desc_bytes(desc), in ahash_set_sh_desc()
385 if (dma_mapping_error(jrdev, ctx->sh_desc_fin_dma)) { in ahash_set_sh_desc()
396 desc = ctx->sh_desc_finup; in ahash_set_sh_desc()
398 ahash_ctx_data_to_out(desc, have_key | ctx->alg_type, in ahash_set_sh_desc()
399 OP_ALG_AS_FINALIZE, digestsize, ctx); in ahash_set_sh_desc()
401 ctx->sh_desc_finup_dma = dma_map_single(jrdev, desc, desc_bytes(desc), in ahash_set_sh_desc()
403 if (dma_mapping_error(jrdev, ctx->sh_desc_finup_dma)) { in ahash_set_sh_desc()
414 desc = ctx->sh_desc_digest; in ahash_set_sh_desc()
416 ahash_data_to_out(desc, have_key | ctx->alg_type, OP_ALG_AS_INITFINAL, in ahash_set_sh_desc()
417 digestsize, ctx); in ahash_set_sh_desc()
419 ctx->sh_desc_digest_dma = dma_map_single(jrdev, desc, in ahash_set_sh_desc()
422 if (dma_mapping_error(jrdev, ctx->sh_desc_digest_dma)) { in ahash_set_sh_desc()
436 static int gen_split_hash_key(struct caam_hash_ctx *ctx, const u8 *key_in, in gen_split_hash_key() argument
439 return gen_split_key(ctx->jrdev, ctx->key, ctx->split_key_len, in gen_split_hash_key()
440 ctx->split_key_pad_len, key_in, keylen, in gen_split_hash_key()
441 ctx->alg_op); in gen_split_hash_key()
445 static int hash_digest_key(struct caam_hash_ctx *ctx, const u8 *key_in, in hash_digest_key() argument
448 struct device *jrdev = ctx->jrdev; in hash_digest_key()
479 append_operation(desc, ctx->alg_type | OP_ALG_ENCRYPT | in hash_digest_key()
525 struct caam_hash_ctx *ctx = crypto_ahash_ctx(ahash); in ahash_setkey() local
526 struct device *jrdev = ctx->jrdev; in ahash_setkey()
541 ret = hash_digest_key(ctx, key, &keylen, hashed_key, in ahash_setkey()
549 ctx->split_key_len = mdpadlen[(ctx->alg_op & OP_ALG_ALGSEL_SUBMASK) >> in ahash_setkey()
551 ctx->split_key_pad_len = ALIGN(ctx->split_key_len, 16); in ahash_setkey()
555 ctx->split_key_len, ctx->split_key_pad_len); in ahash_setkey()
560 ret = gen_split_hash_key(ctx, key, keylen); in ahash_setkey()
564 ctx->key_dma = dma_map_single(jrdev, ctx->key, ctx->split_key_pad_len, in ahash_setkey()
566 if (dma_mapping_error(jrdev, ctx->key_dma)) { in ahash_setkey()
573 DUMP_PREFIX_ADDRESS, 16, 4, ctx->key, in ahash_setkey()
574 ctx->split_key_pad_len, 1); in ahash_setkey()
579 dma_unmap_single(jrdev, ctx->key_dma, ctx->split_key_pad_len, in ahash_setkey()
629 struct caam_hash_ctx *ctx = crypto_ahash_ctx(ahash); in ahash_unmap_ctx() local
633 dma_unmap_single(dev, state->ctx_dma, ctx->ctx_len, flag); in ahash_unmap_ctx()
645 struct caam_hash_ctx *ctx = crypto_ahash_ctx(ahash); in ahash_done() local
662 ctx->ctx_len, 1); in ahash_done()
678 struct caam_hash_ctx *ctx = crypto_ahash_ctx(ahash); in ahash_done_bi() local
691 ahash_unmap_ctx(jrdev, edesc, req, ctx->ctx_len, DMA_BIDIRECTIONAL); in ahash_done_bi()
697 ctx->ctx_len, 1); in ahash_done_bi()
715 struct caam_hash_ctx *ctx = crypto_ahash_ctx(ahash); in ahash_done_ctx_src() local
732 ctx->ctx_len, 1); in ahash_done_ctx_src()
748 struct caam_hash_ctx *ctx = crypto_ahash_ctx(ahash); in ahash_done_ctx_dst() local
761 ahash_unmap_ctx(jrdev, edesc, req, ctx->ctx_len, DMA_FROM_DEVICE); in ahash_done_ctx_dst()
767 ctx->ctx_len, 1); in ahash_done_ctx_dst()
781 struct caam_hash_ctx *ctx = crypto_ahash_ctx(ahash); in ahash_update_ctx() local
783 struct device *jrdev = ctx->jrdev; in ahash_update_ctx()
792 u32 *sh_desc = ctx->sh_desc_update, *desc; in ahash_update_ctx()
793 dma_addr_t ptr = ctx->sh_desc_update_dma; in ahash_update_ctx()
827 ret = ctx_map_to_sec4_sg(desc, jrdev, state, ctx->ctx_len, in ahash_update_ctx()
864 append_seq_in_ptr(desc, edesc->sec4_sg_dma, ctx->ctx_len + in ahash_update_ctx()
867 append_seq_out_ptr(desc, state->ctx_dma, ctx->ctx_len, 0); in ahash_update_ctx()
879 ahash_unmap_ctx(jrdev, edesc, req, ctx->ctx_len, in ahash_update_ctx()
903 struct caam_hash_ctx *ctx = crypto_ahash_ctx(ahash); in ahash_final_ctx() local
905 struct device *jrdev = ctx->jrdev; in ahash_final_ctx()
912 u32 *sh_desc = ctx->sh_desc_fin, *desc; in ahash_final_ctx()
913 dma_addr_t ptr = ctx->sh_desc_fin_dma; in ahash_final_ctx()
940 ret = ctx_map_to_sec4_sg(desc, jrdev, state, ctx->ctx_len, in ahash_final_ctx()
957 append_seq_in_ptr(desc, edesc->sec4_sg_dma, ctx->ctx_len + buflen, in ahash_final_ctx()
986 struct caam_hash_ctx *ctx = crypto_ahash_ctx(ahash); in ahash_finup_ctx() local
988 struct device *jrdev = ctx->jrdev; in ahash_finup_ctx()
995 u32 *sh_desc = ctx->sh_desc_finup, *desc; in ahash_finup_ctx()
996 dma_addr_t ptr = ctx->sh_desc_finup_dma; in ahash_finup_ctx()
1026 ret = ctx_map_to_sec4_sg(desc, jrdev, state, ctx->ctx_len, in ahash_finup_ctx()
1045 append_seq_in_ptr(desc, edesc->sec4_sg_dma, ctx->ctx_len + in ahash_finup_ctx()
1074 struct caam_hash_ctx *ctx = crypto_ahash_ctx(ahash); in ahash_digest() local
1075 struct device *jrdev = ctx->jrdev; in ahash_digest()
1078 u32 *sh_desc = ctx->sh_desc_digest, *desc; in ahash_digest()
1079 dma_addr_t ptr = ctx->sh_desc_digest_dma; in ahash_digest()
1151 struct caam_hash_ctx *ctx = crypto_ahash_ctx(ahash); in ahash_final_no_ctx() local
1153 struct device *jrdev = ctx->jrdev; in ahash_final_no_ctx()
1158 u32 *sh_desc = ctx->sh_desc_digest, *desc; in ahash_final_no_ctx()
1159 dma_addr_t ptr = ctx->sh_desc_digest_dma; in ahash_final_no_ctx()
1213 struct caam_hash_ctx *ctx = crypto_ahash_ctx(ahash); in ahash_update_no_ctx() local
1215 struct device *jrdev = ctx->jrdev; in ahash_update_no_ctx()
1226 u32 *desc, *sh_desc = ctx->sh_desc_update_first; in ahash_update_no_ctx()
1227 dma_addr_t ptr = ctx->sh_desc_update_first_dma; in ahash_update_no_ctx()
1285 ret = map_seq_out_ptr_ctx(desc, jrdev, state, ctx->ctx_len); in ahash_update_no_ctx()
1302 ahash_unmap_ctx(jrdev, edesc, req, ctx->ctx_len, in ahash_update_no_ctx()
1327 struct caam_hash_ctx *ctx = crypto_ahash_ctx(ahash); in ahash_finup_no_ctx() local
1329 struct device *jrdev = ctx->jrdev; in ahash_finup_no_ctx()
1336 u32 *sh_desc = ctx->sh_desc_digest, *desc; in ahash_finup_no_ctx()
1337 dma_addr_t ptr = ctx->sh_desc_digest_dma; in ahash_finup_no_ctx()
1409 struct caam_hash_ctx *ctx = crypto_ahash_ctx(ahash); in ahash_update_first() local
1411 struct device *jrdev = ctx->jrdev; in ahash_update_first()
1418 u32 *sh_desc = ctx->sh_desc_update_first, *desc; in ahash_update_first()
1419 dma_addr_t ptr = ctx->sh_desc_update_first_dma; in ahash_update_first()
1483 ret = map_seq_out_ptr_ctx(desc, jrdev, state, ctx->ctx_len); in ahash_update_first()
1501 ahash_unmap_ctx(jrdev, edesc, req, ctx->ctx_len, in ahash_update_first()
1769 struct caam_hash_ctx *ctx = crypto_tfm_ctx(tfm); in caam_hash_cra_init() local
1783 ctx->jrdev = caam_jr_alloc(); in caam_hash_cra_init()
1784 if (IS_ERR(ctx->jrdev)) { in caam_hash_cra_init()
1786 return PTR_ERR(ctx->jrdev); in caam_hash_cra_init()
1789 ctx->alg_type = OP_TYPE_CLASS2_ALG | caam_hash->alg_type; in caam_hash_cra_init()
1790 ctx->alg_op = OP_TYPE_CLASS2_ALG | caam_hash->alg_op; in caam_hash_cra_init()
1792 ctx->ctx_len = runninglen[(ctx->alg_op & OP_ALG_ALGSEL_SUBMASK) >> in caam_hash_cra_init()
1805 struct caam_hash_ctx *ctx = crypto_tfm_ctx(tfm); in caam_hash_cra_exit() local
1807 if (ctx->sh_desc_update_dma && in caam_hash_cra_exit()
1808 !dma_mapping_error(ctx->jrdev, ctx->sh_desc_update_dma)) in caam_hash_cra_exit()
1809 dma_unmap_single(ctx->jrdev, ctx->sh_desc_update_dma, in caam_hash_cra_exit()
1810 desc_bytes(ctx->sh_desc_update), in caam_hash_cra_exit()
1812 if (ctx->sh_desc_update_first_dma && in caam_hash_cra_exit()
1813 !dma_mapping_error(ctx->jrdev, ctx->sh_desc_update_first_dma)) in caam_hash_cra_exit()
1814 dma_unmap_single(ctx->jrdev, ctx->sh_desc_update_first_dma, in caam_hash_cra_exit()
1815 desc_bytes(ctx->sh_desc_update_first), in caam_hash_cra_exit()
1817 if (ctx->sh_desc_fin_dma && in caam_hash_cra_exit()
1818 !dma_mapping_error(ctx->jrdev, ctx->sh_desc_fin_dma)) in caam_hash_cra_exit()
1819 dma_unmap_single(ctx->jrdev, ctx->sh_desc_fin_dma, in caam_hash_cra_exit()
1820 desc_bytes(ctx->sh_desc_fin), DMA_TO_DEVICE); in caam_hash_cra_exit()
1821 if (ctx->sh_desc_digest_dma && in caam_hash_cra_exit()
1822 !dma_mapping_error(ctx->jrdev, ctx->sh_desc_digest_dma)) in caam_hash_cra_exit()
1823 dma_unmap_single(ctx->jrdev, ctx->sh_desc_digest_dma, in caam_hash_cra_exit()
1824 desc_bytes(ctx->sh_desc_digest), in caam_hash_cra_exit()
1826 if (ctx->sh_desc_finup_dma && in caam_hash_cra_exit()
1827 !dma_mapping_error(ctx->jrdev, ctx->sh_desc_finup_dma)) in caam_hash_cra_exit()
1828 dma_unmap_single(ctx->jrdev, ctx->sh_desc_finup_dma, in caam_hash_cra_exit()
1829 desc_bytes(ctx->sh_desc_finup), DMA_TO_DEVICE); in caam_hash_cra_exit()
1831 caam_jr_free(ctx->jrdev); in caam_hash_cra_exit()