Lines Matching refs:req
21 static void seqiv_aead_encrypt_complete2(struct aead_request *req, int err) in seqiv_aead_encrypt_complete2() argument
23 struct aead_request *subreq = aead_request_ctx(req); in seqiv_aead_encrypt_complete2()
32 geniv = crypto_aead_reqtfm(req); in seqiv_aead_encrypt_complete2()
33 memcpy(req->iv, subreq->iv, crypto_aead_ivsize(geniv)); in seqiv_aead_encrypt_complete2()
41 struct aead_request *req = data; in seqiv_aead_encrypt_complete() local
43 seqiv_aead_encrypt_complete2(req, err); in seqiv_aead_encrypt_complete()
44 aead_request_complete(req, err); in seqiv_aead_encrypt_complete()
47 static int seqiv_aead_encrypt(struct aead_request *req) in seqiv_aead_encrypt() argument
49 struct crypto_aead *geniv = crypto_aead_reqtfm(req); in seqiv_aead_encrypt()
51 struct aead_request *subreq = aead_request_ctx(req); in seqiv_aead_encrypt()
58 if (req->cryptlen < ivsize) in seqiv_aead_encrypt()
63 compl = req->base.complete; in seqiv_aead_encrypt()
64 data = req->base.data; in seqiv_aead_encrypt()
65 info = req->iv; in seqiv_aead_encrypt()
67 if (req->src != req->dst) in seqiv_aead_encrypt()
68 memcpy_sglist(req->dst, req->src, in seqiv_aead_encrypt()
69 req->assoclen + req->cryptlen); in seqiv_aead_encrypt()
73 info = kmemdup(req->iv, ivsize, req->base.flags & in seqiv_aead_encrypt()
80 data = req; in seqiv_aead_encrypt()
83 aead_request_set_callback(subreq, req->base.flags, compl, data); in seqiv_aead_encrypt()
84 aead_request_set_crypt(subreq, req->dst, req->dst, in seqiv_aead_encrypt()
85 req->cryptlen - ivsize, info); in seqiv_aead_encrypt()
86 aead_request_set_ad(subreq, req->assoclen + ivsize); in seqiv_aead_encrypt()
89 scatterwalk_map_and_copy(info, req->dst, req->assoclen, ivsize, 1); in seqiv_aead_encrypt()
92 if (unlikely(info != req->iv)) in seqiv_aead_encrypt()
93 seqiv_aead_encrypt_complete2(req, err); in seqiv_aead_encrypt()
97 static int seqiv_aead_decrypt(struct aead_request *req) in seqiv_aead_decrypt() argument
99 struct crypto_aead *geniv = crypto_aead_reqtfm(req); in seqiv_aead_decrypt()
101 struct aead_request *subreq = aead_request_ctx(req); in seqiv_aead_decrypt()
106 if (req->cryptlen < ivsize + crypto_aead_authsize(geniv)) in seqiv_aead_decrypt()
111 compl = req->base.complete; in seqiv_aead_decrypt()
112 data = req->base.data; in seqiv_aead_decrypt()
114 aead_request_set_callback(subreq, req->base.flags, compl, data); in seqiv_aead_decrypt()
115 aead_request_set_crypt(subreq, req->src, req->dst, in seqiv_aead_decrypt()
116 req->cryptlen - ivsize, req->iv); in seqiv_aead_decrypt()
117 aead_request_set_ad(subreq, req->assoclen + ivsize); in seqiv_aead_decrypt()
119 scatterwalk_map_and_copy(req->iv, req->src, req->assoclen, ivsize, 0); in seqiv_aead_decrypt()