Lines Matching refs:req

107 static int sm4_ecb_do_crypt(struct skcipher_request *req, const u32 *rkey)  in sm4_ecb_do_crypt()  argument
113 err = skcipher_walk_virt(&walk, req, false); in sm4_ecb_do_crypt()
136 static int sm4_ecb_encrypt(struct skcipher_request *req) in sm4_ecb_encrypt() argument
138 struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); in sm4_ecb_encrypt()
141 return sm4_ecb_do_crypt(req, ctx->rkey_enc); in sm4_ecb_encrypt()
144 static int sm4_ecb_decrypt(struct skcipher_request *req) in sm4_ecb_decrypt() argument
146 struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); in sm4_ecb_decrypt()
149 return sm4_ecb_do_crypt(req, ctx->rkey_dec); in sm4_ecb_decrypt()
152 static int sm4_cbc_crypt(struct skcipher_request *req, in sm4_cbc_crypt() argument
159 err = skcipher_walk_virt(&walk, req, false); in sm4_cbc_crypt()
188 static int sm4_cbc_encrypt(struct skcipher_request *req) in sm4_cbc_encrypt() argument
190 struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); in sm4_cbc_encrypt()
193 return sm4_cbc_crypt(req, ctx, true); in sm4_cbc_encrypt()
196 static int sm4_cbc_decrypt(struct skcipher_request *req) in sm4_cbc_decrypt() argument
198 struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); in sm4_cbc_decrypt()
201 return sm4_cbc_crypt(req, ctx, false); in sm4_cbc_decrypt()
204 static int sm4_cbc_cts_crypt(struct skcipher_request *req, bool encrypt) in sm4_cbc_cts_crypt() argument
206 struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); in sm4_cbc_cts_crypt()
208 struct scatterlist *src = req->src; in sm4_cbc_cts_crypt()
209 struct scatterlist *dst = req->dst; in sm4_cbc_cts_crypt()
216 if (req->cryptlen < SM4_BLOCK_SIZE) in sm4_cbc_cts_crypt()
219 if (req->cryptlen == SM4_BLOCK_SIZE) in sm4_cbc_cts_crypt()
220 return sm4_cbc_crypt(req, ctx, encrypt); in sm4_cbc_cts_crypt()
223 skcipher_request_set_callback(&subreq, skcipher_request_flags(req), in sm4_cbc_cts_crypt()
227 cbc_blocks = DIV_ROUND_UP(req->cryptlen, SM4_BLOCK_SIZE) - 2; in sm4_cbc_cts_crypt()
231 req->iv); in sm4_cbc_cts_crypt()
238 if (req->dst != req->src) in sm4_cbc_cts_crypt()
239 dst = scatterwalk_ffwd(sg_dst, req->dst, in sm4_cbc_cts_crypt()
245 req->cryptlen - cbc_blocks * SM4_BLOCK_SIZE, in sm4_cbc_cts_crypt()
246 req->iv); in sm4_cbc_cts_crypt()
266 static int sm4_cbc_cts_encrypt(struct skcipher_request *req) in sm4_cbc_cts_encrypt() argument
268 return sm4_cbc_cts_crypt(req, true); in sm4_cbc_cts_encrypt()
271 static int sm4_cbc_cts_decrypt(struct skcipher_request *req) in sm4_cbc_cts_decrypt() argument
273 return sm4_cbc_cts_crypt(req, false); in sm4_cbc_cts_decrypt()
276 static int sm4_ctr_crypt(struct skcipher_request *req) in sm4_ctr_crypt() argument
278 struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); in sm4_ctr_crypt()
284 err = skcipher_walk_virt(&walk, req, false); in sm4_ctr_crypt()
319 static int sm4_xts_crypt(struct skcipher_request *req, bool encrypt) in sm4_xts_crypt() argument
321 struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); in sm4_xts_crypt()
323 int tail = req->cryptlen % SM4_BLOCK_SIZE; in sm4_xts_crypt()
332 if (req->cryptlen < SM4_BLOCK_SIZE) in sm4_xts_crypt()
335 err = skcipher_walk_virt(&walk, req, false); in sm4_xts_crypt()
340 int nblocks = DIV_ROUND_UP(req->cryptlen, SM4_BLOCK_SIZE) - 2; in sm4_xts_crypt()
346 skcipher_request_flags(req), in sm4_xts_crypt()
348 skcipher_request_set_crypt(&subreq, req->src, req->dst, in sm4_xts_crypt()
349 nblocks * SM4_BLOCK_SIZE, req->iv); in sm4_xts_crypt()
387 dst = src = scatterwalk_ffwd(sg_src, req->src, subreq.cryptlen); in sm4_xts_crypt()
388 if (req->dst != req->src) in sm4_xts_crypt()
389 dst = scatterwalk_ffwd(sg_dst, req->dst, subreq.cryptlen); in sm4_xts_crypt()
392 req->iv); in sm4_xts_crypt()
414 static int sm4_xts_encrypt(struct skcipher_request *req) in sm4_xts_encrypt() argument
416 return sm4_xts_crypt(req, true); in sm4_xts_encrypt()
419 static int sm4_xts_decrypt(struct skcipher_request *req) in sm4_xts_decrypt() argument
421 return sm4_xts_crypt(req, false); in sm4_xts_decrypt()