Lines Matching refs:req
39 struct ahash_request *req = ahash_request_cast(async_req);
40 struct crypto_ahash *ahash = crypto_ahash_reqtfm(req);
41 struct qce_sha_reqctx *rctx = ahash_request_ctx_dma(req);
53 dma_unmap_sg(qce->dev, req->src, rctx->src_nents, DMA_TO_DEVICE);
57 if (req->result && rctx->last_blk)
58 memcpy(req->result, result->auth_iv, digestsize);
67 req->src = rctx->src_orig;
68 req->nbytes = rctx->nbytes_orig;
77 struct ahash_request *req = ahash_request_cast(async_req);
78 struct qce_sha_reqctx *rctx = ahash_request_ctx_dma(req);
93 rctx->src_nents = sg_nents_for_len(req->src, req->nbytes);
99 ret = dma_map_sg(qce->dev, req->src, rctx->src_nents, DMA_TO_DEVICE);
111 ret = qce_dma_prep_sgs(&qce->dma, req->src, rctx->src_nents,
129 dma_unmap_sg(qce->dev, req->src, rctx->src_nents, DMA_TO_DEVICE);
133 static int qce_ahash_init(struct ahash_request *req)
135 struct qce_sha_reqctx *rctx = ahash_request_ctx_dma(req);
136 struct qce_alg_template *tmpl = to_ahash_tmpl(req->base.tfm);
148 static int qce_ahash_export(struct ahash_request *req, void *out)
150 struct qce_sha_reqctx *rctx = ahash_request_ctx_dma(req);
165 static int qce_ahash_import(struct ahash_request *req, const void *in)
167 struct qce_sha_reqctx *rctx = ahash_request_ctx_dma(req);
183 static int qce_ahash_update(struct ahash_request *req)
185 struct crypto_ahash *tfm = crypto_ahash_reqtfm(req);
186 struct qce_sha_reqctx *rctx = ahash_request_ctx_dma(req);
187 struct qce_alg_template *tmpl = to_ahash_tmpl(req->base.tfm);
196 rctx->count += req->nbytes;
199 total = req->nbytes + rctx->buflen;
202 scatterwalk_map_and_copy(rctx->buf + rctx->buflen, req->src,
203 0, req->nbytes, 0);
204 rctx->buflen += req->nbytes;
208 /* save the original req structure fields */
209 rctx->src_orig = req->src;
210 rctx->nbytes_orig = req->nbytes;
241 unsigned int src_offset = req->nbytes - hash_later;
242 scatterwalk_map_and_copy(rctx->buf, req->src, src_offset,
250 sg = sg_last = req->src;
266 sg_chain(rctx->sg, 2, req->src);
267 req->src = rctx->sg;
270 req->nbytes = nbytes;
273 return qce->async_req_enqueue(tmpl->qce, &req->base);
276 static int qce_ahash_final(struct ahash_request *req)
278 struct qce_sha_reqctx *rctx = ahash_request_ctx_dma(req);
279 struct qce_alg_template *tmpl = to_ahash_tmpl(req->base.tfm);
284 memcpy(req->result, tmpl->hash_zero,
291 rctx->src_orig = req->src;
292 rctx->nbytes_orig = req->nbytes;
297 req->src = rctx->sg;
298 req->nbytes = rctx->buflen;
300 return qce->async_req_enqueue(tmpl->qce, &req->base);
303 static int qce_ahash_digest(struct ahash_request *req)
305 struct qce_sha_reqctx *rctx = ahash_request_ctx_dma(req);
306 struct qce_alg_template *tmpl = to_ahash_tmpl(req->base.tfm);
310 ret = qce_ahash_init(req);
314 rctx->src_orig = req->src;
315 rctx->nbytes_orig = req->nbytes;
321 memcpy(req->result, tmpl->hash_zero,
326 return qce->async_req_enqueue(tmpl->qce, &req->base);
335 struct ahash_request *req;
362 req = ahash_request_alloc(ahash_tfm, GFP_KERNEL);
363 if (!req) {
369 ahash_request_set_callback(req, CRYPTO_TFM_REQ_MAY_BACKLOG,
381 ahash_request_set_crypt(req, &sg, ctx->authkey, keylen);
383 ret = crypto_wait_req(crypto_ahash_digest(req), &wait);
387 ahash_request_free(req);