Lines Matching refs:areq
192 struct aead_request *areq = arg;
193 struct nitrox_aead_rctx *rctx = aead_request_ctx(areq);
202 aead_request_complete(areq, err);
213 static int nitrox_aes_gcm_enc(struct aead_request *areq)
215 struct crypto_aead *aead = crypto_aead_reqtfm(areq);
217 struct nitrox_aead_rctx *rctx = aead_request_ctx(areq);
222 if (!nitrox_aes_gcm_assoclen_supported(areq->assoclen))
225 memcpy(fctx->crypto.iv, areq->iv, GCM_AES_SALT_SIZE);
227 rctx->cryptlen = areq->cryptlen;
228 rctx->assoclen = areq->assoclen;
229 rctx->srclen = areq->assoclen + areq->cryptlen;
231 rctx->iv = &areq->iv[GCM_AES_SALT_SIZE];
233 rctx->flags = areq->base.flags;
235 rctx->src = areq->src;
236 rctx->dst = areq->dst;
244 areq);
247 static int nitrox_aes_gcm_dec(struct aead_request *areq)
249 struct crypto_aead *aead = crypto_aead_reqtfm(areq);
251 struct nitrox_aead_rctx *rctx = aead_request_ctx(areq);
256 if (!nitrox_aes_gcm_assoclen_supported(areq->assoclen))
259 memcpy(fctx->crypto.iv, areq->iv, GCM_AES_SALT_SIZE);
261 rctx->cryptlen = areq->cryptlen - aead->authsize;
262 rctx->assoclen = areq->assoclen;
263 rctx->srclen = areq->cryptlen + areq->assoclen;
265 rctx->iv = &areq->iv[GCM_AES_SALT_SIZE];
267 rctx->flags = areq->base.flags;
269 rctx->src = areq->src;
270 rctx->dst = areq->dst;
278 areq);
393 static int nitrox_rfc4106_set_aead_rctx_sglist(struct aead_request *areq)
395 struct nitrox_rfc4106_rctx *rctx = aead_request_ctx_dma(areq);
397 unsigned int assoclen = areq->assoclen - GCM_RFC4106_IV_SIZE;
400 if (areq->assoclen != 16 && areq->assoclen != 20)
403 scatterwalk_map_and_copy(rctx->assoc, areq->src, 0, assoclen, 0);
406 sg = scatterwalk_ffwd(rctx->src + 1, areq->src, areq->assoclen);
410 if (areq->src != areq->dst) {
413 sg = scatterwalk_ffwd(rctx->dst + 1, areq->dst, areq->assoclen);
419 aead_rctx->dst = (areq->src == areq->dst) ? rctx->src : rctx->dst;
426 struct aead_request *areq = arg;
427 struct nitrox_rfc4106_rctx *rctx = aead_request_ctx_dma(areq);
437 aead_request_complete(areq, err);
440 static int nitrox_rfc4106_enc(struct aead_request *areq)
442 struct crypto_aead *aead = crypto_aead_reqtfm(areq);
444 struct nitrox_rfc4106_rctx *rctx = aead_request_ctx_dma(areq);
449 aead_rctx->cryptlen = areq->cryptlen;
450 aead_rctx->assoclen = areq->assoclen - GCM_RFC4106_IV_SIZE;
453 aead_rctx->iv = areq->iv;
455 aead_rctx->flags = areq->base.flags;
459 ret = nitrox_rfc4106_set_aead_rctx_sglist(areq);
469 nitrox_rfc4106_callback, areq);
472 static int nitrox_rfc4106_dec(struct aead_request *areq)
474 struct crypto_aead *aead = crypto_aead_reqtfm(areq);
476 struct nitrox_rfc4106_rctx *rctx = aead_request_ctx(areq);
481 aead_rctx->cryptlen = areq->cryptlen - aead->authsize;
482 aead_rctx->assoclen = areq->assoclen - GCM_RFC4106_IV_SIZE;
484 areq->cryptlen - GCM_RFC4106_IV_SIZE + areq->assoclen;
486 aead_rctx->iv = areq->iv;
488 aead_rctx->flags = areq->base.flags;
492 ret = nitrox_rfc4106_set_aead_rctx_sglist(areq);
502 nitrox_rfc4106_callback, areq);