Lines Matching refs:req
21 static void seqiv_aead_encrypt_complete2(struct aead_request *req, int err)
23 struct aead_request *subreq = aead_request_ctx(req);
32 geniv = crypto_aead_reqtfm(req);
33 memcpy(req->iv, subreq->iv, crypto_aead_ivsize(geniv));
42 struct aead_request *req = base->data;
44 seqiv_aead_encrypt_complete2(req, err);
45 aead_request_complete(req, err);
48 static int seqiv_aead_encrypt(struct aead_request *req)
50 struct crypto_aead *geniv = crypto_aead_reqtfm(req);
52 struct aead_request *subreq = aead_request_ctx(req);
59 if (req->cryptlen < ivsize)
64 compl = req->base.complete;
65 data = req->base.data;
66 info = req->iv;
68 if (req->src != req->dst) {
72 skcipher_request_set_callback(nreq, req->base.flags,
74 skcipher_request_set_crypt(nreq, req->src, req->dst,
75 req->assoclen + req->cryptlen,
85 info = kmemdup(req->iv, ivsize, req->base.flags &
92 data = req;
95 aead_request_set_callback(subreq, req->base.flags, compl, data);
96 aead_request_set_crypt(subreq, req->dst, req->dst,
97 req->cryptlen - ivsize, info);
98 aead_request_set_ad(subreq, req->assoclen + ivsize);
101 scatterwalk_map_and_copy(info, req->dst, req->assoclen, ivsize, 1);
104 if (unlikely(info != req->iv))
105 seqiv_aead_encrypt_complete2(req, err);
109 static int seqiv_aead_decrypt(struct aead_request *req)
111 struct crypto_aead *geniv = crypto_aead_reqtfm(req);
113 struct aead_request *subreq = aead_request_ctx(req);
118 if (req->cryptlen < ivsize + crypto_aead_authsize(geniv))
123 compl = req->base.complete;
124 data = req->base.data;
126 aead_request_set_callback(subreq, req->base.flags, compl, data);
127 aead_request_set_crypt(subreq, req->src, req->dst,
128 req->cryptlen - ivsize, req->iv);
129 aead_request_set_ad(subreq, req->assoclen + ivsize);
131 scatterwalk_map_and_copy(req->iv, req->src, req->assoclen, ivsize, 0);