Lines Matching refs:req
136 struct skcipher_request *req = areq->data; in essiv_skcipher_done() local
138 skcipher_request_complete(req, err); in essiv_skcipher_done()
141 static int essiv_skcipher_crypt(struct skcipher_request *req, bool enc) in essiv_skcipher_crypt() argument
143 struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); in essiv_skcipher_crypt()
145 struct skcipher_request *subreq = skcipher_request_ctx(req); in essiv_skcipher_crypt()
147 crypto_cipher_encrypt_one(tctx->essiv_cipher, req->iv, req->iv); in essiv_skcipher_crypt()
150 skcipher_request_set_crypt(subreq, req->src, req->dst, req->cryptlen, in essiv_skcipher_crypt()
151 req->iv); in essiv_skcipher_crypt()
152 skcipher_request_set_callback(subreq, skcipher_request_flags(req), in essiv_skcipher_crypt()
153 essiv_skcipher_done, req); in essiv_skcipher_crypt()
159 static int essiv_skcipher_encrypt(struct skcipher_request *req) in essiv_skcipher_encrypt() argument
161 return essiv_skcipher_crypt(req, true); in essiv_skcipher_encrypt()
164 static int essiv_skcipher_decrypt(struct skcipher_request *req) in essiv_skcipher_decrypt() argument
166 return essiv_skcipher_crypt(req, false); in essiv_skcipher_decrypt()
171 struct aead_request *req = areq->data; in essiv_aead_done() local
172 struct essiv_aead_request_ctx *rctx = aead_request_ctx(req); in essiv_aead_done()
180 aead_request_complete(req, err); in essiv_aead_done()
183 static int essiv_aead_crypt(struct aead_request *req, bool enc) in essiv_aead_crypt() argument
185 struct crypto_aead *tfm = crypto_aead_reqtfm(req); in essiv_aead_crypt()
187 struct essiv_aead_request_ctx *rctx = aead_request_ctx(req); in essiv_aead_crypt()
189 struct scatterlist *src = req->src; in essiv_aead_crypt()
192 crypto_cipher_encrypt_one(tctx->essiv_cipher, req->iv, req->iv); in essiv_aead_crypt()
200 if (req->src == req->dst || !enc) { in essiv_aead_crypt()
201 scatterwalk_map_and_copy(req->iv, req->dst, in essiv_aead_crypt()
202 req->assoclen - crypto_aead_ivsize(tfm), in essiv_aead_crypt()
205 u8 *iv = (u8 *)aead_request_ctx(req) + tctx->ivoffset; in essiv_aead_crypt()
207 int ssize = req->assoclen - ivsize; in essiv_aead_crypt()
214 nents = sg_nents_for_len(req->src, ssize); in essiv_aead_crypt()
218 memcpy(iv, req->iv, ivsize); in essiv_aead_crypt()
230 scatterwalk_map_and_copy(rctx->assoc, req->src, 0, in essiv_aead_crypt()
234 sg_set_page(rctx->sg, sg_page(req->src), ssize, in essiv_aead_crypt()
235 req->src->offset); in essiv_aead_crypt()
239 sg = scatterwalk_ffwd(rctx->sg + 2, req->src, req->assoclen); in essiv_aead_crypt()
247 aead_request_set_ad(subreq, req->assoclen); in essiv_aead_crypt()
248 aead_request_set_callback(subreq, aead_request_flags(req), in essiv_aead_crypt()
249 essiv_aead_done, req); in essiv_aead_crypt()
250 aead_request_set_crypt(subreq, src, req->dst, req->cryptlen, req->iv); in essiv_aead_crypt()
260 static int essiv_aead_encrypt(struct aead_request *req) in essiv_aead_encrypt() argument
262 return essiv_aead_crypt(req, true); in essiv_aead_encrypt()
265 static int essiv_aead_decrypt(struct aead_request *req) in essiv_aead_decrypt() argument
267 return essiv_aead_crypt(req, false); in essiv_aead_decrypt()