Lines Matching refs:walk

34 static void crypto_xctr_crypt_final(struct skcipher_walk *walk,  in crypto_xctr_crypt_final()  argument
38 const u8 *src = walk->src.virt.addr; in crypto_xctr_crypt_final()
39 u8 *dst = walk->dst.virt.addr; in crypto_xctr_crypt_final()
40 unsigned int nbytes = walk->nbytes; in crypto_xctr_crypt_final()
43 crypto_xor(walk->iv, (u8 *)&ctr32, sizeof(ctr32)); in crypto_xctr_crypt_final()
44 crypto_cipher_encrypt_one(tfm, keystream, walk->iv); in crypto_xctr_crypt_final()
46 crypto_xor(walk->iv, (u8 *)&ctr32, sizeof(ctr32)); in crypto_xctr_crypt_final()
49 static int crypto_xctr_crypt_segment(struct skcipher_walk *walk, in crypto_xctr_crypt_segment() argument
54 const u8 *src = walk->src.virt.addr; in crypto_xctr_crypt_segment()
55 u8 *dst = walk->dst.virt.addr; in crypto_xctr_crypt_segment()
56 unsigned int nbytes = walk->nbytes; in crypto_xctr_crypt_segment()
60 crypto_xor(walk->iv, (u8 *)&ctr32, sizeof(ctr32)); in crypto_xctr_crypt_segment()
61 fn(crypto_cipher_tfm(tfm), dst, walk->iv); in crypto_xctr_crypt_segment()
63 crypto_xor(walk->iv, (u8 *)&ctr32, sizeof(ctr32)); in crypto_xctr_crypt_segment()
74 static int crypto_xctr_crypt_inplace(struct skcipher_walk *walk, in crypto_xctr_crypt_inplace() argument
80 unsigned int nbytes = walk->nbytes; in crypto_xctr_crypt_inplace()
81 u8 *data = walk->dst.virt.addr; in crypto_xctr_crypt_inplace()
87 crypto_xor(walk->iv, (u8 *)&ctr32, sizeof(ctr32)); in crypto_xctr_crypt_inplace()
88 fn(crypto_cipher_tfm(tfm), keystream, walk->iv); in crypto_xctr_crypt_inplace()
90 crypto_xor(walk->iv, (u8 *)&ctr32, sizeof(ctr32)); in crypto_xctr_crypt_inplace()
104 struct skcipher_walk walk; in crypto_xctr_crypt() local
109 err = skcipher_walk_virt(&walk, req, false); in crypto_xctr_crypt()
111 while (walk.nbytes >= XCTR_BLOCKSIZE) { in crypto_xctr_crypt()
112 if (walk.src.virt.addr == walk.dst.virt.addr) in crypto_xctr_crypt()
113 nbytes = crypto_xctr_crypt_inplace(&walk, cipher, in crypto_xctr_crypt()
116 nbytes = crypto_xctr_crypt_segment(&walk, cipher, in crypto_xctr_crypt()
119 byte_ctr += walk.nbytes - nbytes; in crypto_xctr_crypt()
120 err = skcipher_walk_done(&walk, nbytes); in crypto_xctr_crypt()
123 if (walk.nbytes) { in crypto_xctr_crypt()
124 crypto_xctr_crypt_final(&walk, cipher, byte_ctr); in crypto_xctr_crypt()
125 err = skcipher_walk_done(&walk, 0); in crypto_xctr_crypt()