• Home
  • Raw
  • Download

Lines Matching refs:req

57 	struct aead_request *req)  in crypto_ccm_reqctx()  argument
59 unsigned long align = crypto_aead_alignmask(crypto_aead_reqtfm(req)); in crypto_ccm_reqctx()
61 return (void *)PTR_ALIGN((u8 *)aead_request_ctx(req), align + 1); in crypto_ccm_reqctx()
129 static int format_input(u8 *info, struct aead_request *req, in format_input() argument
132 struct crypto_aead *aead = crypto_aead_reqtfm(req); in format_input()
133 unsigned int lp = req->iv[0]; in format_input()
139 memcpy(info, req->iv, 16); in format_input()
145 if (req->assoclen) in format_input()
251 static int crypto_ccm_auth(struct aead_request *req, struct scatterlist *plain, in crypto_ccm_auth() argument
254 struct crypto_aead *aead = crypto_aead_reqtfm(req); in crypto_ccm_auth()
256 struct crypto_ccm_req_priv_ctx *pctx = crypto_ccm_reqctx(req); in crypto_ccm_auth()
258 unsigned int assoclen = req->assoclen; in crypto_ccm_auth()
264 err = format_input(odata, req, cryptlen); in crypto_ccm_auth()
274 get_data_to_compute(cipher, pctx, req->src, req->assoclen); in crypto_ccm_auth()
289 struct aead_request *req = areq->data; in crypto_ccm_encrypt_done() local
290 struct crypto_aead *aead = crypto_aead_reqtfm(req); in crypto_ccm_encrypt_done()
291 struct crypto_ccm_req_priv_ctx *pctx = crypto_ccm_reqctx(req); in crypto_ccm_encrypt_done()
295 scatterwalk_map_and_copy(odata, req->dst, in crypto_ccm_encrypt_done()
296 req->assoclen + req->cryptlen, in crypto_ccm_encrypt_done()
298 aead_request_complete(req, err); in crypto_ccm_encrypt_done()
310 static int crypto_ccm_init_crypt(struct aead_request *req, u8 *tag) in crypto_ccm_init_crypt() argument
312 struct crypto_ccm_req_priv_ctx *pctx = crypto_ccm_reqctx(req); in crypto_ccm_init_crypt()
314 u8 *iv = req->iv; in crypto_ccm_init_crypt()
321 pctx->flags = aead_request_flags(req); in crypto_ccm_init_crypt()
330 sg = scatterwalk_ffwd(pctx->src + 1, req->src, req->assoclen); in crypto_ccm_init_crypt()
334 if (req->src != req->dst) { in crypto_ccm_init_crypt()
337 sg = scatterwalk_ffwd(pctx->dst + 1, req->dst, req->assoclen); in crypto_ccm_init_crypt()
345 static int crypto_ccm_encrypt(struct aead_request *req) in crypto_ccm_encrypt() argument
347 struct crypto_aead *aead = crypto_aead_reqtfm(req); in crypto_ccm_encrypt()
349 struct crypto_ccm_req_priv_ctx *pctx = crypto_ccm_reqctx(req); in crypto_ccm_encrypt()
352 unsigned int cryptlen = req->cryptlen; in crypto_ccm_encrypt()
354 u8 *iv = req->iv; in crypto_ccm_encrypt()
357 err = crypto_ccm_init_crypt(req, odata); in crypto_ccm_encrypt()
361 err = crypto_ccm_auth(req, sg_next(pctx->src), cryptlen); in crypto_ccm_encrypt()
366 if (req->src != req->dst) in crypto_ccm_encrypt()
371 crypto_ccm_encrypt_done, req); in crypto_ccm_encrypt()
386 struct aead_request *req = areq->data; in crypto_ccm_decrypt_done() local
387 struct crypto_ccm_req_priv_ctx *pctx = crypto_ccm_reqctx(req); in crypto_ccm_decrypt_done()
388 struct crypto_aead *aead = crypto_aead_reqtfm(req); in crypto_ccm_decrypt_done()
390 unsigned int cryptlen = req->cryptlen - authsize; in crypto_ccm_decrypt_done()
395 dst = sg_next(req->src == req->dst ? pctx->src : pctx->dst); in crypto_ccm_decrypt_done()
398 err = crypto_ccm_auth(req, dst, cryptlen); in crypto_ccm_decrypt_done()
402 aead_request_complete(req, err); in crypto_ccm_decrypt_done()
405 static int crypto_ccm_decrypt(struct aead_request *req) in crypto_ccm_decrypt() argument
407 struct crypto_aead *aead = crypto_aead_reqtfm(req); in crypto_ccm_decrypt()
409 struct crypto_ccm_req_priv_ctx *pctx = crypto_ccm_reqctx(req); in crypto_ccm_decrypt()
413 unsigned int cryptlen = req->cryptlen; in crypto_ccm_decrypt()
421 err = crypto_ccm_init_crypt(req, authtag); in crypto_ccm_decrypt()
429 if (req->src != req->dst) in crypto_ccm_decrypt()
432 memcpy(iv, req->iv, 16); in crypto_ccm_decrypt()
436 crypto_ccm_decrypt_done, req); in crypto_ccm_decrypt()
442 err = crypto_ccm_auth(req, sg_next(dst), cryptlen); in crypto_ccm_decrypt()
708 static struct aead_request *crypto_rfc4309_crypt(struct aead_request *req) in crypto_rfc4309_crypt() argument
710 struct crypto_rfc4309_req_ctx *rctx = aead_request_ctx(req); in crypto_rfc4309_crypt()
712 struct crypto_aead *aead = crypto_aead_reqtfm(req); in crypto_rfc4309_crypt()
723 memcpy(iv + 4, req->iv, 8); in crypto_rfc4309_crypt()
725 scatterwalk_map_and_copy(iv + 16, req->src, 0, req->assoclen - 8, 0); in crypto_rfc4309_crypt()
728 sg_set_buf(rctx->src, iv + 16, req->assoclen - 8); in crypto_rfc4309_crypt()
729 sg = scatterwalk_ffwd(rctx->src + 1, req->src, req->assoclen); in crypto_rfc4309_crypt()
733 if (req->src != req->dst) { in crypto_rfc4309_crypt()
735 sg_set_buf(rctx->dst, iv + 16, req->assoclen - 8); in crypto_rfc4309_crypt()
736 sg = scatterwalk_ffwd(rctx->dst + 1, req->dst, req->assoclen); in crypto_rfc4309_crypt()
742 aead_request_set_callback(subreq, req->base.flags, req->base.complete, in crypto_rfc4309_crypt()
743 req->base.data); in crypto_rfc4309_crypt()
745 req->src == req->dst ? rctx->src : rctx->dst, in crypto_rfc4309_crypt()
746 req->cryptlen, iv); in crypto_rfc4309_crypt()
747 aead_request_set_ad(subreq, req->assoclen - 8); in crypto_rfc4309_crypt()
752 static int crypto_rfc4309_encrypt(struct aead_request *req) in crypto_rfc4309_encrypt() argument
754 if (req->assoclen != 16 && req->assoclen != 20) in crypto_rfc4309_encrypt()
757 req = crypto_rfc4309_crypt(req); in crypto_rfc4309_encrypt()
759 return crypto_aead_encrypt(req); in crypto_rfc4309_encrypt()
762 static int crypto_rfc4309_decrypt(struct aead_request *req) in crypto_rfc4309_decrypt() argument
764 if (req->assoclen != 16 && req->assoclen != 20) in crypto_rfc4309_decrypt()
767 req = crypto_rfc4309_crypt(req); in crypto_rfc4309_decrypt()
769 return crypto_aead_decrypt(req); in crypto_rfc4309_decrypt()