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));
41 struct aead_request *req = data;
43 seqiv_aead_encrypt_complete2(req, err);
44 aead_request_complete(req, err);
47 static int seqiv_aead_encrypt(struct aead_request *req)
49 struct crypto_aead *geniv = crypto_aead_reqtfm(req);
51 struct aead_request *subreq = aead_request_ctx(req);
58 if (req->cryptlen < ivsize)
63 compl = req->base.complete;
64 data = req->base.data;
65 info = req->iv;
67 if (req->src != req->dst) {
71 skcipher_request_set_callback(nreq, req->base.flags,
73 skcipher_request_set_crypt(nreq, req->src, req->dst,
74 req->assoclen + req->cryptlen,
84 info = kmemdup(req->iv, ivsize, req->base.flags &
91 data = req;
94 aead_request_set_callback(subreq, req->base.flags, compl, data);
95 aead_request_set_crypt(subreq, req->dst, req->dst,
96 req->cryptlen - ivsize, info);
97 aead_request_set_ad(subreq, req->assoclen + ivsize);
100 scatterwalk_map_and_copy(info, req->dst, req->assoclen, ivsize, 1);
103 if (unlikely(info != req->iv))
104 seqiv_aead_encrypt_complete2(req, err);
108 static int seqiv_aead_decrypt(struct aead_request *req)
110 struct crypto_aead *geniv = crypto_aead_reqtfm(req);
112 struct aead_request *subreq = aead_request_ctx(req);
117 if (req->cryptlen < ivsize + crypto_aead_authsize(geniv))
122 compl = req->base.complete;
123 data = req->base.data;
125 aead_request_set_callback(subreq, req->base.flags, compl, data);
126 aead_request_set_crypt(subreq, req->src, req->dst,
127 req->cryptlen - ivsize, req->iv);
128 aead_request_set_ad(subreq, req->assoclen + ivsize);
130 scatterwalk_map_and_copy(req->iv, req->src, req->assoclen, ivsize, 0);