Lines Matching refs:req

51 	struct aead_request *req)  in crypto_ccm_reqctx()  argument
53 unsigned long align = crypto_aead_alignmask(crypto_aead_reqtfm(req)); in crypto_ccm_reqctx()
55 return (void *)PTR_ALIGN((u8 *)aead_request_ctx(req), align + 1); in crypto_ccm_reqctx()
123 static int format_input(u8 *info, struct aead_request *req, in format_input() argument
126 struct crypto_aead *aead = crypto_aead_reqtfm(req); in format_input()
127 unsigned int lp = req->iv[0]; in format_input()
133 memcpy(info, req->iv, 16); in format_input()
139 if (req->assoclen) in format_input()
245 static int crypto_ccm_auth(struct aead_request *req, struct scatterlist *plain, in crypto_ccm_auth() argument
248 struct crypto_aead *aead = crypto_aead_reqtfm(req); in crypto_ccm_auth()
250 struct crypto_ccm_req_priv_ctx *pctx = crypto_ccm_reqctx(req); in crypto_ccm_auth()
252 unsigned int assoclen = req->assoclen; in crypto_ccm_auth()
258 err = format_input(odata, req, cryptlen); in crypto_ccm_auth()
268 get_data_to_compute(cipher, pctx, req->assoc, req->assoclen); in crypto_ccm_auth()
283 struct aead_request *req = areq->data; in crypto_ccm_encrypt_done() local
284 struct crypto_aead *aead = crypto_aead_reqtfm(req); in crypto_ccm_encrypt_done()
285 struct crypto_ccm_req_priv_ctx *pctx = crypto_ccm_reqctx(req); in crypto_ccm_encrypt_done()
289 scatterwalk_map_and_copy(odata, req->dst, req->cryptlen, in crypto_ccm_encrypt_done()
291 aead_request_complete(req, err); in crypto_ccm_encrypt_done()
303 static int crypto_ccm_encrypt(struct aead_request *req) in crypto_ccm_encrypt() argument
305 struct crypto_aead *aead = crypto_aead_reqtfm(req); in crypto_ccm_encrypt()
307 struct crypto_ccm_req_priv_ctx *pctx = crypto_ccm_reqctx(req); in crypto_ccm_encrypt()
310 unsigned int cryptlen = req->cryptlen; in crypto_ccm_encrypt()
312 u8 *iv = req->iv; in crypto_ccm_encrypt()
319 pctx->flags = aead_request_flags(req); in crypto_ccm_encrypt()
321 err = crypto_ccm_auth(req, req->src, cryptlen); in crypto_ccm_encrypt()
332 scatterwalk_sg_chain(pctx->src, 2, req->src); in crypto_ccm_encrypt()
335 if (req->src != req->dst) { in crypto_ccm_encrypt()
338 scatterwalk_sg_chain(pctx->dst, 2, req->dst); in crypto_ccm_encrypt()
344 crypto_ccm_encrypt_done, req); in crypto_ccm_encrypt()
351 scatterwalk_map_and_copy(odata, req->dst, cryptlen, in crypto_ccm_encrypt()
359 struct aead_request *req = areq->data; in crypto_ccm_decrypt_done() local
360 struct crypto_ccm_req_priv_ctx *pctx = crypto_ccm_reqctx(req); in crypto_ccm_decrypt_done()
361 struct crypto_aead *aead = crypto_aead_reqtfm(req); in crypto_ccm_decrypt_done()
363 unsigned int cryptlen = req->cryptlen - authsize; in crypto_ccm_decrypt_done()
366 err = crypto_ccm_auth(req, req->dst, cryptlen); in crypto_ccm_decrypt_done()
370 aead_request_complete(req, err); in crypto_ccm_decrypt_done()
373 static int crypto_ccm_decrypt(struct aead_request *req) in crypto_ccm_decrypt() argument
375 struct crypto_aead *aead = crypto_aead_reqtfm(req); in crypto_ccm_decrypt()
377 struct crypto_ccm_req_priv_ctx *pctx = crypto_ccm_reqctx(req); in crypto_ccm_decrypt()
381 unsigned int cryptlen = req->cryptlen; in crypto_ccm_decrypt()
384 u8 *iv = req->iv; in crypto_ccm_decrypt()
395 pctx->flags = aead_request_flags(req); in crypto_ccm_decrypt()
397 scatterwalk_map_and_copy(authtag, req->src, cryptlen, authsize, 0); in crypto_ccm_decrypt()
403 scatterwalk_sg_chain(pctx->src, 2, req->src); in crypto_ccm_decrypt()
406 if (req->src != req->dst) { in crypto_ccm_decrypt()
409 scatterwalk_sg_chain(pctx->dst, 2, req->dst); in crypto_ccm_decrypt()
415 crypto_ccm_decrypt_done, req); in crypto_ccm_decrypt()
421 err = crypto_ccm_auth(req, req->dst, cryptlen); in crypto_ccm_decrypt()
678 static struct aead_request *crypto_rfc4309_crypt(struct aead_request *req) in crypto_rfc4309_crypt() argument
680 struct aead_request *subreq = aead_request_ctx(req); in crypto_rfc4309_crypt()
681 struct crypto_aead *aead = crypto_aead_reqtfm(req); in crypto_rfc4309_crypt()
691 memcpy(iv + 4, req->iv, 8); in crypto_rfc4309_crypt()
694 aead_request_set_callback(subreq, req->base.flags, req->base.complete, in crypto_rfc4309_crypt()
695 req->base.data); in crypto_rfc4309_crypt()
696 aead_request_set_crypt(subreq, req->src, req->dst, req->cryptlen, iv); in crypto_rfc4309_crypt()
697 aead_request_set_assoc(subreq, req->assoc, req->assoclen); in crypto_rfc4309_crypt()
702 static int crypto_rfc4309_encrypt(struct aead_request *req) in crypto_rfc4309_encrypt() argument
704 req = crypto_rfc4309_crypt(req); in crypto_rfc4309_encrypt()
706 return crypto_aead_encrypt(req); in crypto_rfc4309_encrypt()
709 static int crypto_rfc4309_decrypt(struct aead_request *req) in crypto_rfc4309_decrypt() argument
711 req = crypto_rfc4309_crypt(req); in crypto_rfc4309_decrypt()
713 return crypto_aead_decrypt(req); in crypto_rfc4309_decrypt()