Lines Matching refs:req

551 static int sahara_aes_process(struct ablkcipher_request *req)  in sahara_aes_process()  argument
562 req->nbytes, req->src, req->dst); in sahara_aes_process()
565 dev->total = req->nbytes; in sahara_aes_process()
566 dev->in_sg = req->src; in sahara_aes_process()
567 dev->out_sg = req->dst; in sahara_aes_process()
569 rctx = ablkcipher_request_ctx(req); in sahara_aes_process()
570 ctx = crypto_ablkcipher_ctx(crypto_ablkcipher_reqtfm(req)); in sahara_aes_process()
574 if ((dev->flags & FLAGS_CBC) && req->info) in sahara_aes_process()
575 memcpy(dev->iv_base, req->info, AES_KEYSIZE_128); in sahara_aes_process()
638 static int sahara_aes_crypt(struct ablkcipher_request *req, unsigned long mode) in sahara_aes_crypt() argument
640 struct sahara_aes_reqctx *rctx = ablkcipher_request_ctx(req); in sahara_aes_crypt()
645 req->nbytes, !!(mode & FLAGS_ENCRYPT), !!(mode & FLAGS_CBC)); in sahara_aes_crypt()
647 if (!IS_ALIGNED(req->nbytes, AES_BLOCK_SIZE)) { in sahara_aes_crypt()
656 err = ablkcipher_enqueue_request(&dev->queue, req); in sahara_aes_crypt()
664 static int sahara_aes_ecb_encrypt(struct ablkcipher_request *req) in sahara_aes_ecb_encrypt() argument
667 crypto_ablkcipher_tfm(crypto_ablkcipher_reqtfm(req)); in sahara_aes_ecb_encrypt()
669 crypto_ablkcipher_reqtfm(req)); in sahara_aes_ecb_encrypt()
673 ablkcipher_request_set_tfm(req, ctx->fallback); in sahara_aes_ecb_encrypt()
674 err = crypto_ablkcipher_encrypt(req); in sahara_aes_ecb_encrypt()
675 ablkcipher_request_set_tfm(req, __crypto_ablkcipher_cast(tfm)); in sahara_aes_ecb_encrypt()
679 return sahara_aes_crypt(req, FLAGS_ENCRYPT); in sahara_aes_ecb_encrypt()
682 static int sahara_aes_ecb_decrypt(struct ablkcipher_request *req) in sahara_aes_ecb_decrypt() argument
685 crypto_ablkcipher_tfm(crypto_ablkcipher_reqtfm(req)); in sahara_aes_ecb_decrypt()
687 crypto_ablkcipher_reqtfm(req)); in sahara_aes_ecb_decrypt()
691 ablkcipher_request_set_tfm(req, ctx->fallback); in sahara_aes_ecb_decrypt()
692 err = crypto_ablkcipher_decrypt(req); in sahara_aes_ecb_decrypt()
693 ablkcipher_request_set_tfm(req, __crypto_ablkcipher_cast(tfm)); in sahara_aes_ecb_decrypt()
697 return sahara_aes_crypt(req, 0); in sahara_aes_ecb_decrypt()
700 static int sahara_aes_cbc_encrypt(struct ablkcipher_request *req) in sahara_aes_cbc_encrypt() argument
703 crypto_ablkcipher_tfm(crypto_ablkcipher_reqtfm(req)); in sahara_aes_cbc_encrypt()
705 crypto_ablkcipher_reqtfm(req)); in sahara_aes_cbc_encrypt()
709 ablkcipher_request_set_tfm(req, ctx->fallback); in sahara_aes_cbc_encrypt()
710 err = crypto_ablkcipher_encrypt(req); in sahara_aes_cbc_encrypt()
711 ablkcipher_request_set_tfm(req, __crypto_ablkcipher_cast(tfm)); in sahara_aes_cbc_encrypt()
715 return sahara_aes_crypt(req, FLAGS_ENCRYPT | FLAGS_CBC); in sahara_aes_cbc_encrypt()
718 static int sahara_aes_cbc_decrypt(struct ablkcipher_request *req) in sahara_aes_cbc_decrypt() argument
721 crypto_ablkcipher_tfm(crypto_ablkcipher_reqtfm(req)); in sahara_aes_cbc_decrypt()
723 crypto_ablkcipher_reqtfm(req)); in sahara_aes_cbc_decrypt()
727 ablkcipher_request_set_tfm(req, ctx->fallback); in sahara_aes_cbc_decrypt()
728 err = crypto_ablkcipher_decrypt(req); in sahara_aes_cbc_decrypt()
729 ablkcipher_request_set_tfm(req, __crypto_ablkcipher_cast(tfm)); in sahara_aes_cbc_decrypt()
733 return sahara_aes_crypt(req, FLAGS_CBC); in sahara_aes_cbc_decrypt()
823 struct ahash_request *req, in sahara_sha_hw_data_descriptor_create() argument
876 struct ahash_request *req, in sahara_sha_hw_context_descriptor_create() argument
911 static int sahara_sha_prepare_request(struct ahash_request *req) in sahara_sha_prepare_request() argument
913 struct crypto_ahash *tfm = crypto_ahash_reqtfm(req); in sahara_sha_prepare_request()
914 struct sahara_sha_reqctx *rctx = ahash_request_ctx(req); in sahara_sha_prepare_request()
922 len = rctx->buf_cnt + req->nbytes; in sahara_sha_prepare_request()
927 scatterwalk_map_and_copy(rctx->buf + rctx->buf_cnt, req->src, in sahara_sha_prepare_request()
928 0, req->nbytes, 0); in sahara_sha_prepare_request()
929 rctx->buf_cnt += req->nbytes; in sahara_sha_prepare_request()
941 unsigned int offset = req->nbytes - hash_later; in sahara_sha_prepare_request()
943 scatterwalk_map_and_copy(rctx->buf, req->src, offset, in sahara_sha_prepare_request()
948 req->nbytes = req->nbytes - hash_later; in sahara_sha_prepare_request()
950 sahara_walk_and_recalc(req->src, req->nbytes); in sahara_sha_prepare_request()
953 if (rctx->buf_cnt && req->nbytes) { in sahara_sha_prepare_request()
957 sg_chain(rctx->in_sg_chain, 2, req->src); in sahara_sha_prepare_request()
959 rctx->total = req->nbytes + rctx->buf_cnt; in sahara_sha_prepare_request()
962 req->src = rctx->in_sg_chain; in sahara_sha_prepare_request()
965 if (req->src) in sahara_sha_prepare_request()
966 rctx->in_sg = req->src; in sahara_sha_prepare_request()
974 rctx->in_sg = req->src; in sahara_sha_prepare_request()
975 rctx->total = req->nbytes; in sahara_sha_prepare_request()
976 req->src = rctx->in_sg; in sahara_sha_prepare_request()
985 static int sahara_sha_process(struct ahash_request *req) in sahara_sha_process() argument
988 struct sahara_sha_reqctx *rctx = ahash_request_ctx(req); in sahara_sha_process()
992 ret = sahara_sha_prepare_request(req); in sahara_sha_process()
997 sahara_sha_hw_data_descriptor_create(dev, rctx, req, 0); in sahara_sha_process()
1003 sahara_sha_hw_context_descriptor_create(dev, rctx, req, 0); in sahara_sha_process()
1005 sahara_sha_hw_data_descriptor_create(dev, rctx, req, 1); in sahara_sha_process()
1029 if (req->result) in sahara_sha_process()
1030 memcpy(req->result, rctx->context, rctx->digest_size); in sahara_sha_process()
1056 struct ahash_request *req = in sahara_queue_manage() local
1059 ret = sahara_sha_process(req); in sahara_queue_manage()
1061 struct ablkcipher_request *req = in sahara_queue_manage() local
1064 ret = sahara_aes_process(req); in sahara_queue_manage()
1078 static int sahara_sha_enqueue(struct ahash_request *req, int last) in sahara_sha_enqueue() argument
1080 struct sahara_sha_reqctx *rctx = ahash_request_ctx(req); in sahara_sha_enqueue()
1084 if (!req->nbytes && !last) in sahara_sha_enqueue()
1096 ret = crypto_enqueue_request(&dev->queue, &req->base); in sahara_sha_enqueue()
1105 static int sahara_sha_init(struct ahash_request *req) in sahara_sha_init() argument
1107 struct crypto_ahash *tfm = crypto_ahash_reqtfm(req); in sahara_sha_init()
1108 struct sahara_sha_reqctx *rctx = ahash_request_ctx(req); in sahara_sha_init()
1133 static int sahara_sha_update(struct ahash_request *req) in sahara_sha_update() argument
1135 return sahara_sha_enqueue(req, 0); in sahara_sha_update()
1138 static int sahara_sha_final(struct ahash_request *req) in sahara_sha_final() argument
1140 req->nbytes = 0; in sahara_sha_final()
1141 return sahara_sha_enqueue(req, 1); in sahara_sha_final()
1144 static int sahara_sha_finup(struct ahash_request *req) in sahara_sha_finup() argument
1146 return sahara_sha_enqueue(req, 1); in sahara_sha_finup()
1149 static int sahara_sha_digest(struct ahash_request *req) in sahara_sha_digest() argument
1151 sahara_sha_init(req); in sahara_sha_digest()
1153 return sahara_sha_finup(req); in sahara_sha_digest()
1156 static int sahara_sha_export(struct ahash_request *req, void *out) in sahara_sha_export() argument
1158 struct crypto_ahash *ahash = crypto_ahash_reqtfm(req); in sahara_sha_export()
1160 struct sahara_sha_reqctx *rctx = ahash_request_ctx(req); in sahara_sha_export()
1169 static int sahara_sha_import(struct ahash_request *req, const void *in) in sahara_sha_import() argument
1171 struct crypto_ahash *ahash = crypto_ahash_reqtfm(req); in sahara_sha_import()
1173 struct sahara_sha_reqctx *rctx = ahash_request_ctx(req); in sahara_sha_import()