Lines Matching refs:req

35 static void seqiv_complete2(struct skcipher_givcrypt_request *req, int err)  in seqiv_complete2()  argument
37 struct ablkcipher_request *subreq = skcipher_givcrypt_reqctx(req); in seqiv_complete2()
46 geniv = skcipher_givcrypt_reqtfm(req); in seqiv_complete2()
47 memcpy(req->creq.info, subreq->info, crypto_ablkcipher_ivsize(geniv)); in seqiv_complete2()
55 struct skcipher_givcrypt_request *req = base->data; in seqiv_complete() local
57 seqiv_complete2(req, err); in seqiv_complete()
58 skcipher_givcrypt_complete(req, err); in seqiv_complete()
61 static void seqiv_aead_encrypt_complete2(struct aead_request *req, int err) in seqiv_aead_encrypt_complete2() argument
63 struct aead_request *subreq = aead_request_ctx(req); in seqiv_aead_encrypt_complete2()
72 geniv = crypto_aead_reqtfm(req); in seqiv_aead_encrypt_complete2()
73 memcpy(req->iv, subreq->iv, crypto_aead_ivsize(geniv)); in seqiv_aead_encrypt_complete2()
82 struct aead_request *req = base->data; in seqiv_aead_encrypt_complete() local
84 seqiv_aead_encrypt_complete2(req, err); in seqiv_aead_encrypt_complete()
85 aead_request_complete(req, err); in seqiv_aead_encrypt_complete()
102 static int seqiv_givencrypt(struct skcipher_givcrypt_request *req) in seqiv_givencrypt() argument
104 struct crypto_ablkcipher *geniv = skcipher_givcrypt_reqtfm(req); in seqiv_givencrypt()
106 struct ablkcipher_request *subreq = skcipher_givcrypt_reqctx(req); in seqiv_givencrypt()
115 compl = req->creq.base.complete; in seqiv_givencrypt()
116 data = req->creq.base.data; in seqiv_givencrypt()
117 info = req->creq.info; in seqiv_givencrypt()
123 info = kmalloc(ivsize, req->creq.base.flags & in seqiv_givencrypt()
130 data = req; in seqiv_givencrypt()
133 ablkcipher_request_set_callback(subreq, req->creq.base.flags, compl, in seqiv_givencrypt()
135 ablkcipher_request_set_crypt(subreq, req->creq.src, req->creq.dst, in seqiv_givencrypt()
136 req->creq.nbytes, info); in seqiv_givencrypt()
138 seqiv_geniv(ctx, info, req->seq, ivsize); in seqiv_givencrypt()
139 memcpy(req->giv, info, ivsize); in seqiv_givencrypt()
142 if (unlikely(info != req->creq.info)) in seqiv_givencrypt()
143 seqiv_complete2(req, err); in seqiv_givencrypt()
147 static int seqiv_aead_encrypt(struct aead_request *req) in seqiv_aead_encrypt() argument
149 struct crypto_aead *geniv = crypto_aead_reqtfm(req); in seqiv_aead_encrypt()
151 struct aead_request *subreq = aead_request_ctx(req); in seqiv_aead_encrypt()
158 if (req->cryptlen < ivsize) in seqiv_aead_encrypt()
163 compl = req->base.complete; in seqiv_aead_encrypt()
164 data = req->base.data; in seqiv_aead_encrypt()
165 info = req->iv; in seqiv_aead_encrypt()
167 if (req->src != req->dst) { in seqiv_aead_encrypt()
172 err = crypto_blkcipher_encrypt(&desc, req->dst, req->src, in seqiv_aead_encrypt()
173 req->assoclen + req->cryptlen); in seqiv_aead_encrypt()
180 info = kmalloc(ivsize, req->base.flags & in seqiv_aead_encrypt()
186 memcpy(info, req->iv, ivsize); in seqiv_aead_encrypt()
188 data = req; in seqiv_aead_encrypt()
191 aead_request_set_callback(subreq, req->base.flags, compl, data); in seqiv_aead_encrypt()
192 aead_request_set_crypt(subreq, req->dst, req->dst, in seqiv_aead_encrypt()
193 req->cryptlen - ivsize, info); in seqiv_aead_encrypt()
194 aead_request_set_ad(subreq, req->assoclen + ivsize); in seqiv_aead_encrypt()
197 scatterwalk_map_and_copy(info, req->dst, req->assoclen, ivsize, 1); in seqiv_aead_encrypt()
200 if (unlikely(info != req->iv)) in seqiv_aead_encrypt()
201 seqiv_aead_encrypt_complete2(req, err); in seqiv_aead_encrypt()
205 static int seqiv_aead_decrypt(struct aead_request *req) in seqiv_aead_decrypt() argument
207 struct crypto_aead *geniv = crypto_aead_reqtfm(req); in seqiv_aead_decrypt()
209 struct aead_request *subreq = aead_request_ctx(req); in seqiv_aead_decrypt()
214 if (req->cryptlen < ivsize + crypto_aead_authsize(geniv)) in seqiv_aead_decrypt()
219 compl = req->base.complete; in seqiv_aead_decrypt()
220 data = req->base.data; in seqiv_aead_decrypt()
222 aead_request_set_callback(subreq, req->base.flags, compl, data); in seqiv_aead_decrypt()
223 aead_request_set_crypt(subreq, req->src, req->dst, in seqiv_aead_decrypt()
224 req->cryptlen - ivsize, req->iv); in seqiv_aead_decrypt()
225 aead_request_set_ad(subreq, req->assoclen + ivsize); in seqiv_aead_decrypt()
227 scatterwalk_map_and_copy(req->iv, req->src, req->assoclen, ivsize, 0); in seqiv_aead_decrypt()