Lines Matching refs:req
40 struct ahash_request *req = ahash_request_cast(async_req); in qce_ahash_done() local
41 struct crypto_ahash *ahash = crypto_ahash_reqtfm(req); in qce_ahash_done()
42 struct qce_sha_reqctx *rctx = ahash_request_ctx(req); in qce_ahash_done()
54 dma_unmap_sg(qce->dev, req->src, rctx->src_nents, DMA_TO_DEVICE); in qce_ahash_done()
58 if (req->result) in qce_ahash_done()
59 memcpy(req->result, result->auth_iv, digestsize); in qce_ahash_done()
68 req->src = rctx->src_orig; in qce_ahash_done()
69 req->nbytes = rctx->nbytes_orig; in qce_ahash_done()
78 struct ahash_request *req = ahash_request_cast(async_req); in qce_ahash_async_req_handle() local
79 struct qce_sha_reqctx *rctx = ahash_request_ctx(req); in qce_ahash_async_req_handle()
94 rctx->src_nents = sg_nents_for_len(req->src, req->nbytes); in qce_ahash_async_req_handle()
95 ret = dma_map_sg(qce->dev, req->src, rctx->src_nents, DMA_TO_DEVICE); in qce_ahash_async_req_handle()
105 ret = qce_dma_prep_sgs(&qce->dma, req->src, rctx->src_nents, in qce_ahash_async_req_handle()
123 dma_unmap_sg(qce->dev, req->src, rctx->src_nents, DMA_TO_DEVICE); in qce_ahash_async_req_handle()
127 static int qce_ahash_init(struct ahash_request *req) in qce_ahash_init() argument
129 struct qce_sha_reqctx *rctx = ahash_request_ctx(req); in qce_ahash_init()
130 struct qce_alg_template *tmpl = to_ahash_tmpl(req->base.tfm); in qce_ahash_init()
142 static int qce_ahash_export(struct ahash_request *req, void *out) in qce_ahash_export() argument
144 struct crypto_ahash *ahash = crypto_ahash_reqtfm(req); in qce_ahash_export()
145 struct qce_sha_reqctx *rctx = ahash_request_ctx(req); in qce_ahash_export()
172 static int qce_import_common(struct ahash_request *req, u64 in_count, in qce_import_common() argument
175 struct crypto_ahash *ahash = crypto_ahash_reqtfm(req); in qce_import_common()
176 struct qce_sha_reqctx *rctx = ahash_request_ctx(req); in qce_import_common()
207 static int qce_ahash_import(struct ahash_request *req, const void *in) in qce_ahash_import() argument
209 struct qce_sha_reqctx *rctx = ahash_request_ctx(req); in qce_ahash_import()
217 ret = qce_import_common(req, state->count, state->state, in qce_ahash_import()
222 ret = qce_import_common(req, state->count, state->state, in qce_ahash_import()
229 static int qce_ahash_update(struct ahash_request *req) in qce_ahash_update() argument
231 struct crypto_ahash *tfm = crypto_ahash_reqtfm(req); in qce_ahash_update()
232 struct qce_sha_reqctx *rctx = ahash_request_ctx(req); in qce_ahash_update()
233 struct qce_alg_template *tmpl = to_ahash_tmpl(req->base.tfm); in qce_ahash_update()
242 rctx->count += req->nbytes; in qce_ahash_update()
245 total = req->nbytes + rctx->buflen; in qce_ahash_update()
248 scatterwalk_map_and_copy(rctx->buf + rctx->buflen, req->src, in qce_ahash_update()
249 0, req->nbytes, 0); in qce_ahash_update()
250 rctx->buflen += req->nbytes; in qce_ahash_update()
255 rctx->src_orig = req->src; in qce_ahash_update()
256 rctx->nbytes_orig = req->nbytes; in qce_ahash_update()
268 unsigned int src_offset = req->nbytes - hash_later; in qce_ahash_update()
269 scatterwalk_map_and_copy(rctx->buf, req->src, src_offset, in qce_ahash_update()
277 sg = sg_last = req->src; in qce_ahash_update()
295 sg_chain(rctx->sg, 2, req->src); in qce_ahash_update()
296 req->src = rctx->sg; in qce_ahash_update()
299 req->nbytes = nbytes; in qce_ahash_update()
302 return qce->async_req_enqueue(tmpl->qce, &req->base); in qce_ahash_update()
305 static int qce_ahash_final(struct ahash_request *req) in qce_ahash_final() argument
307 struct qce_sha_reqctx *rctx = ahash_request_ctx(req); in qce_ahash_final()
308 struct qce_alg_template *tmpl = to_ahash_tmpl(req->base.tfm); in qce_ahash_final()
316 rctx->src_orig = req->src; in qce_ahash_final()
317 rctx->nbytes_orig = req->nbytes; in qce_ahash_final()
322 req->src = rctx->sg; in qce_ahash_final()
323 req->nbytes = rctx->buflen; in qce_ahash_final()
325 return qce->async_req_enqueue(tmpl->qce, &req->base); in qce_ahash_final()
328 static int qce_ahash_digest(struct ahash_request *req) in qce_ahash_digest() argument
330 struct qce_sha_reqctx *rctx = ahash_request_ctx(req); in qce_ahash_digest()
331 struct qce_alg_template *tmpl = to_ahash_tmpl(req->base.tfm); in qce_ahash_digest()
335 ret = qce_ahash_init(req); in qce_ahash_digest()
339 rctx->src_orig = req->src; in qce_ahash_digest()
340 rctx->nbytes_orig = req->nbytes; in qce_ahash_digest()
344 return qce->async_req_enqueue(tmpl->qce, &req->base); in qce_ahash_digest()
352 static void qce_digest_complete(struct crypto_async_request *req, int error) in qce_digest_complete() argument
354 struct qce_ahash_result *result = req->data; in qce_digest_complete()
369 struct ahash_request *req; in qce_ahash_hmac_setkey() local
397 req = ahash_request_alloc(ahash_tfm, GFP_KERNEL); in qce_ahash_hmac_setkey()
398 if (!req) { in qce_ahash_hmac_setkey()
404 ahash_request_set_callback(req, CRYPTO_TFM_REQ_MAY_BACKLOG, in qce_ahash_hmac_setkey()
416 ahash_request_set_crypt(req, &sg, ctx->authkey, keylen); in qce_ahash_hmac_setkey()
418 ret = crypto_ahash_digest(req); in qce_ahash_hmac_setkey()
430 ahash_request_free(req); in qce_ahash_hmac_setkey()