Lines Matching refs:req
577 static int sahara_aes_process(struct ablkcipher_request *req) in sahara_aes_process() argument
588 req->nbytes, req->src, req->dst); in sahara_aes_process()
591 dev->total = req->nbytes; in sahara_aes_process()
592 dev->in_sg = req->src; in sahara_aes_process()
593 dev->out_sg = req->dst; in sahara_aes_process()
595 rctx = ablkcipher_request_ctx(req); in sahara_aes_process()
596 ctx = crypto_ablkcipher_ctx(crypto_ablkcipher_reqtfm(req)); in sahara_aes_process()
600 if ((dev->flags & FLAGS_CBC) && req->info) in sahara_aes_process()
601 memcpy(dev->iv_base, req->info, AES_KEYSIZE_128); in sahara_aes_process()
664 static int sahara_aes_crypt(struct ablkcipher_request *req, unsigned long mode) in sahara_aes_crypt() argument
666 struct sahara_aes_reqctx *rctx = ablkcipher_request_ctx(req); in sahara_aes_crypt()
671 req->nbytes, !!(mode & FLAGS_ENCRYPT), !!(mode & FLAGS_CBC)); in sahara_aes_crypt()
673 if (!IS_ALIGNED(req->nbytes, AES_BLOCK_SIZE)) { in sahara_aes_crypt()
682 err = ablkcipher_enqueue_request(&dev->queue, req); in sahara_aes_crypt()
690 static int sahara_aes_ecb_encrypt(struct ablkcipher_request *req) in sahara_aes_ecb_encrypt() argument
693 crypto_ablkcipher_tfm(crypto_ablkcipher_reqtfm(req)); in sahara_aes_ecb_encrypt()
695 crypto_ablkcipher_reqtfm(req)); in sahara_aes_ecb_encrypt()
699 ablkcipher_request_set_tfm(req, ctx->fallback); in sahara_aes_ecb_encrypt()
700 err = crypto_ablkcipher_encrypt(req); in sahara_aes_ecb_encrypt()
701 ablkcipher_request_set_tfm(req, __crypto_ablkcipher_cast(tfm)); in sahara_aes_ecb_encrypt()
705 return sahara_aes_crypt(req, FLAGS_ENCRYPT); in sahara_aes_ecb_encrypt()
708 static int sahara_aes_ecb_decrypt(struct ablkcipher_request *req) in sahara_aes_ecb_decrypt() argument
711 crypto_ablkcipher_tfm(crypto_ablkcipher_reqtfm(req)); in sahara_aes_ecb_decrypt()
713 crypto_ablkcipher_reqtfm(req)); in sahara_aes_ecb_decrypt()
717 ablkcipher_request_set_tfm(req, ctx->fallback); in sahara_aes_ecb_decrypt()
718 err = crypto_ablkcipher_decrypt(req); in sahara_aes_ecb_decrypt()
719 ablkcipher_request_set_tfm(req, __crypto_ablkcipher_cast(tfm)); in sahara_aes_ecb_decrypt()
723 return sahara_aes_crypt(req, 0); in sahara_aes_ecb_decrypt()
726 static int sahara_aes_cbc_encrypt(struct ablkcipher_request *req) in sahara_aes_cbc_encrypt() argument
729 crypto_ablkcipher_tfm(crypto_ablkcipher_reqtfm(req)); in sahara_aes_cbc_encrypt()
731 crypto_ablkcipher_reqtfm(req)); in sahara_aes_cbc_encrypt()
735 ablkcipher_request_set_tfm(req, ctx->fallback); in sahara_aes_cbc_encrypt()
736 err = crypto_ablkcipher_encrypt(req); in sahara_aes_cbc_encrypt()
737 ablkcipher_request_set_tfm(req, __crypto_ablkcipher_cast(tfm)); in sahara_aes_cbc_encrypt()
741 return sahara_aes_crypt(req, FLAGS_ENCRYPT | FLAGS_CBC); in sahara_aes_cbc_encrypt()
744 static int sahara_aes_cbc_decrypt(struct ablkcipher_request *req) in sahara_aes_cbc_decrypt() argument
747 crypto_ablkcipher_tfm(crypto_ablkcipher_reqtfm(req)); in sahara_aes_cbc_decrypt()
749 crypto_ablkcipher_reqtfm(req)); in sahara_aes_cbc_decrypt()
753 ablkcipher_request_set_tfm(req, ctx->fallback); in sahara_aes_cbc_decrypt()
754 err = crypto_ablkcipher_decrypt(req); in sahara_aes_cbc_decrypt()
755 ablkcipher_request_set_tfm(req, __crypto_ablkcipher_cast(tfm)); in sahara_aes_cbc_decrypt()
759 return sahara_aes_crypt(req, FLAGS_CBC); in sahara_aes_cbc_decrypt()
868 struct ahash_request *req, in sahara_sha_hw_data_descriptor_create() argument
921 struct ahash_request *req, in sahara_sha_hw_context_descriptor_create() argument
956 static int sahara_sha_prepare_request(struct ahash_request *req) in sahara_sha_prepare_request() argument
958 struct crypto_ahash *tfm = crypto_ahash_reqtfm(req); in sahara_sha_prepare_request()
959 struct sahara_sha_reqctx *rctx = ahash_request_ctx(req); in sahara_sha_prepare_request()
967 len = rctx->buf_cnt + req->nbytes; in sahara_sha_prepare_request()
972 scatterwalk_map_and_copy(rctx->buf + rctx->buf_cnt, req->src, in sahara_sha_prepare_request()
973 0, req->nbytes, 0); in sahara_sha_prepare_request()
974 rctx->buf_cnt += req->nbytes; in sahara_sha_prepare_request()
986 unsigned int offset = req->nbytes - hash_later; in sahara_sha_prepare_request()
988 scatterwalk_map_and_copy(rctx->buf, req->src, offset, in sahara_sha_prepare_request()
993 req->nbytes = req->nbytes - hash_later; in sahara_sha_prepare_request()
995 sahara_walk_and_recalc(req->src, req->nbytes); in sahara_sha_prepare_request()
998 if (rctx->buf_cnt && req->nbytes) { in sahara_sha_prepare_request()
1002 scatterwalk_sg_chain(rctx->in_sg_chain, 2, req->src); in sahara_sha_prepare_request()
1004 rctx->total = req->nbytes + rctx->buf_cnt; in sahara_sha_prepare_request()
1008 req->src = rctx->in_sg_chain; in sahara_sha_prepare_request()
1011 if (req->src) in sahara_sha_prepare_request()
1012 rctx->in_sg = req->src; in sahara_sha_prepare_request()
1021 rctx->in_sg = req->src; in sahara_sha_prepare_request()
1022 rctx->total = req->nbytes; in sahara_sha_prepare_request()
1023 req->src = rctx->in_sg; in sahara_sha_prepare_request()
1050 static int sahara_sha_process(struct ahash_request *req) in sahara_sha_process() argument
1053 struct sahara_sha_reqctx *rctx = ahash_request_ctx(req); in sahara_sha_process()
1057 ret = sahara_sha_prepare_request(req); in sahara_sha_process()
1062 sahara_sha_hw_data_descriptor_create(dev, rctx, req, 0); in sahara_sha_process()
1068 sahara_sha_hw_context_descriptor_create(dev, rctx, req, 0); in sahara_sha_process()
1070 sahara_sha_hw_data_descriptor_create(dev, rctx, req, 1); in sahara_sha_process()
1093 if (req->result) in sahara_sha_process()
1094 memcpy(req->result, rctx->context, rctx->digest_size); in sahara_sha_process()
1120 struct ahash_request *req = in sahara_queue_manage() local
1123 ret = sahara_sha_process(req); in sahara_queue_manage()
1125 struct ablkcipher_request *req = in sahara_queue_manage() local
1128 ret = sahara_aes_process(req); in sahara_queue_manage()
1142 static int sahara_sha_enqueue(struct ahash_request *req, int last) in sahara_sha_enqueue() argument
1144 struct sahara_sha_reqctx *rctx = ahash_request_ctx(req); in sahara_sha_enqueue()
1148 if (!req->nbytes && !last) in sahara_sha_enqueue()
1160 ret = crypto_enqueue_request(&dev->queue, &req->base); in sahara_sha_enqueue()
1169 static int sahara_sha_init(struct ahash_request *req) in sahara_sha_init() argument
1171 struct crypto_ahash *tfm = crypto_ahash_reqtfm(req); in sahara_sha_init()
1172 struct sahara_sha_reqctx *rctx = ahash_request_ctx(req); in sahara_sha_init()
1197 static int sahara_sha_update(struct ahash_request *req) in sahara_sha_update() argument
1199 return sahara_sha_enqueue(req, 0); in sahara_sha_update()
1202 static int sahara_sha_final(struct ahash_request *req) in sahara_sha_final() argument
1204 req->nbytes = 0; in sahara_sha_final()
1205 return sahara_sha_enqueue(req, 1); in sahara_sha_final()
1208 static int sahara_sha_finup(struct ahash_request *req) in sahara_sha_finup() argument
1210 return sahara_sha_enqueue(req, 1); in sahara_sha_finup()
1213 static int sahara_sha_digest(struct ahash_request *req) in sahara_sha_digest() argument
1215 sahara_sha_init(req); in sahara_sha_digest()
1217 return sahara_sha_finup(req); in sahara_sha_digest()
1220 static int sahara_sha_export(struct ahash_request *req, void *out) in sahara_sha_export() argument
1222 struct crypto_ahash *ahash = crypto_ahash_reqtfm(req); in sahara_sha_export()
1224 struct sahara_sha_reqctx *rctx = ahash_request_ctx(req); in sahara_sha_export()
1233 static int sahara_sha_import(struct ahash_request *req, const void *in) in sahara_sha_import() argument
1235 struct crypto_ahash *ahash = crypto_ahash_reqtfm(req); in sahara_sha_import()
1237 struct sahara_sha_reqctx *rctx = ahash_request_ctx(req); in sahara_sha_import()