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 qce_unmapsg(qce->dev, req->src, rctx->src_nents, DMA_TO_DEVICE, in qce_ahash_done()
59 if (req->result) in qce_ahash_done()
60 memcpy(req->result, result->auth_iv, digestsize); in qce_ahash_done()
69 req->src = rctx->src_orig; in qce_ahash_done()
70 req->nbytes = rctx->nbytes_orig; in qce_ahash_done()
79 struct ahash_request *req = ahash_request_cast(async_req); in qce_ahash_async_req_handle() local
80 struct qce_sha_reqctx *rctx = ahash_request_ctx(req); in qce_ahash_async_req_handle()
95 rctx->src_nents = qce_countsg(req->src, req->nbytes, in qce_ahash_async_req_handle()
97 ret = qce_mapsg(qce->dev, req->src, rctx->src_nents, DMA_TO_DEVICE, in qce_ahash_async_req_handle()
108 ret = qce_dma_prep_sgs(&qce->dma, req->src, rctx->src_nents, in qce_ahash_async_req_handle()
126 qce_unmapsg(qce->dev, req->src, rctx->src_nents, DMA_TO_DEVICE, in qce_ahash_async_req_handle()
131 static int qce_ahash_init(struct ahash_request *req) in qce_ahash_init() argument
133 struct qce_sha_reqctx *rctx = ahash_request_ctx(req); in qce_ahash_init()
134 struct qce_alg_template *tmpl = to_ahash_tmpl(req->base.tfm); in qce_ahash_init()
146 static int qce_ahash_export(struct ahash_request *req, void *out) in qce_ahash_export() argument
148 struct crypto_ahash *ahash = crypto_ahash_reqtfm(req); in qce_ahash_export()
149 struct qce_sha_reqctx *rctx = ahash_request_ctx(req); in qce_ahash_export()
176 static int qce_import_common(struct ahash_request *req, u64 in_count, in qce_import_common() argument
179 struct crypto_ahash *ahash = crypto_ahash_reqtfm(req); in qce_import_common()
180 struct qce_sha_reqctx *rctx = ahash_request_ctx(req); in qce_import_common()
211 static int qce_ahash_import(struct ahash_request *req, const void *in) in qce_ahash_import() argument
213 struct qce_sha_reqctx *rctx = ahash_request_ctx(req); in qce_ahash_import()
221 ret = qce_import_common(req, state->count, state->state, in qce_ahash_import()
226 ret = qce_import_common(req, state->count, state->state, in qce_ahash_import()
233 static int qce_ahash_update(struct ahash_request *req) in qce_ahash_update() argument
235 struct crypto_ahash *tfm = crypto_ahash_reqtfm(req); in qce_ahash_update()
236 struct qce_sha_reqctx *rctx = ahash_request_ctx(req); in qce_ahash_update()
237 struct qce_alg_template *tmpl = to_ahash_tmpl(req->base.tfm); in qce_ahash_update()
246 rctx->count += req->nbytes; in qce_ahash_update()
249 total = req->nbytes + rctx->buflen; in qce_ahash_update()
252 scatterwalk_map_and_copy(rctx->buf + rctx->buflen, req->src, in qce_ahash_update()
253 0, req->nbytes, 0); in qce_ahash_update()
254 rctx->buflen += req->nbytes; in qce_ahash_update()
259 rctx->src_orig = req->src; in qce_ahash_update()
260 rctx->nbytes_orig = req->nbytes; in qce_ahash_update()
272 unsigned int src_offset = req->nbytes - hash_later; in qce_ahash_update()
273 scatterwalk_map_and_copy(rctx->buf, req->src, src_offset, in qce_ahash_update()
281 sg = sg_last = req->src; in qce_ahash_update()
299 scatterwalk_sg_chain(rctx->sg, 2, req->src); in qce_ahash_update()
300 req->src = rctx->sg; in qce_ahash_update()
303 req->nbytes = nbytes; in qce_ahash_update()
306 return qce->async_req_enqueue(tmpl->qce, &req->base); in qce_ahash_update()
309 static int qce_ahash_final(struct ahash_request *req) in qce_ahash_final() argument
311 struct qce_sha_reqctx *rctx = ahash_request_ctx(req); in qce_ahash_final()
312 struct qce_alg_template *tmpl = to_ahash_tmpl(req->base.tfm); in qce_ahash_final()
320 rctx->src_orig = req->src; in qce_ahash_final()
321 rctx->nbytes_orig = req->nbytes; in qce_ahash_final()
326 req->src = rctx->sg; in qce_ahash_final()
327 req->nbytes = rctx->buflen; in qce_ahash_final()
329 return qce->async_req_enqueue(tmpl->qce, &req->base); in qce_ahash_final()
332 static int qce_ahash_digest(struct ahash_request *req) in qce_ahash_digest() argument
334 struct qce_sha_reqctx *rctx = ahash_request_ctx(req); in qce_ahash_digest()
335 struct qce_alg_template *tmpl = to_ahash_tmpl(req->base.tfm); in qce_ahash_digest()
339 ret = qce_ahash_init(req); in qce_ahash_digest()
343 rctx->src_orig = req->src; in qce_ahash_digest()
344 rctx->nbytes_orig = req->nbytes; in qce_ahash_digest()
348 return qce->async_req_enqueue(tmpl->qce, &req->base); in qce_ahash_digest()
356 static void qce_digest_complete(struct crypto_async_request *req, int error) in qce_digest_complete() argument
358 struct qce_ahash_result *result = req->data; in qce_digest_complete()
373 struct ahash_request *req; in qce_ahash_hmac_setkey() local
401 req = ahash_request_alloc(ahash_tfm, GFP_KERNEL); in qce_ahash_hmac_setkey()
402 if (!req) { in qce_ahash_hmac_setkey()
408 ahash_request_set_callback(req, CRYPTO_TFM_REQ_MAY_BACKLOG, in qce_ahash_hmac_setkey()
420 ahash_request_set_crypt(req, &sg, ctx->authkey, keylen); in qce_ahash_hmac_setkey()
422 ret = crypto_ahash_digest(req); in qce_ahash_hmac_setkey()
434 ahash_request_free(req); in qce_ahash_hmac_setkey()