pcbc.c (0337966d121ebebf73a1c346123e8112796e684e) pcbc.c (45fe93dff2fb58b22de04c729f8447ba0f773d93)
1/*
2 * PCBC: Propagating Cipher Block Chaining mode
3 *
4 * Copyright (C) 2006 Red Hat, Inc. All Rights Reserved.
5 * Written by David Howells (dhowells@redhat.com)
6 *
7 * Derived from cbc.c
8 * - Copyright (c) 2006 Herbert Xu <herbert@gondor.apana.org.au>

--- 41 unchanged lines hidden (view full) ---

50 unsigned int nbytes = walk->nbytes;
51 u8 *src = walk->src.virt.addr;
52 u8 *dst = walk->dst.virt.addr;
53 u8 *iv = walk->iv;
54
55 do {
56 crypto_xor(iv, src, bsize);
57 crypto_cipher_encrypt_one(tfm, dst, iv);
1/*
2 * PCBC: Propagating Cipher Block Chaining mode
3 *
4 * Copyright (C) 2006 Red Hat, Inc. All Rights Reserved.
5 * Written by David Howells (dhowells@redhat.com)
6 *
7 * Derived from cbc.c
8 * - Copyright (c) 2006 Herbert Xu <herbert@gondor.apana.org.au>

--- 41 unchanged lines hidden (view full) ---

50 unsigned int nbytes = walk->nbytes;
51 u8 *src = walk->src.virt.addr;
52 u8 *dst = walk->dst.virt.addr;
53 u8 *iv = walk->iv;
54
55 do {
56 crypto_xor(iv, src, bsize);
57 crypto_cipher_encrypt_one(tfm, dst, iv);
58 memcpy(iv, dst, bsize);
59 crypto_xor(iv, src, bsize);
58 crypto_xor_cpy(iv, dst, src, bsize);
60
61 src += bsize;
62 dst += bsize;
63 } while ((nbytes -= bsize) >= bsize);
64
65 return nbytes;
66}
67

--- 6 unchanged lines hidden (view full) ---

74 u8 *src = walk->src.virt.addr;
75 u8 *iv = walk->iv;
76 u8 tmpbuf[bsize];
77
78 do {
79 memcpy(tmpbuf, src, bsize);
80 crypto_xor(iv, src, bsize);
81 crypto_cipher_encrypt_one(tfm, src, iv);
59
60 src += bsize;
61 dst += bsize;
62 } while ((nbytes -= bsize) >= bsize);
63
64 return nbytes;
65}
66

--- 6 unchanged lines hidden (view full) ---

73 u8 *src = walk->src.virt.addr;
74 u8 *iv = walk->iv;
75 u8 tmpbuf[bsize];
76
77 do {
78 memcpy(tmpbuf, src, bsize);
79 crypto_xor(iv, src, bsize);
80 crypto_cipher_encrypt_one(tfm, src, iv);
82 memcpy(iv, tmpbuf, bsize);
83 crypto_xor(iv, src, bsize);
81 crypto_xor_cpy(iv, tmpbuf, src, bsize);
84
85 src += bsize;
86 } while ((nbytes -= bsize) >= bsize);
87
88 memcpy(walk->iv, iv, bsize);
89
90 return nbytes;
91}

--- 30 unchanged lines hidden (view full) ---

122 unsigned int nbytes = walk->nbytes;
123 u8 *src = walk->src.virt.addr;
124 u8 *dst = walk->dst.virt.addr;
125 u8 *iv = walk->iv;
126
127 do {
128 crypto_cipher_decrypt_one(tfm, dst, src);
129 crypto_xor(dst, iv, bsize);
82
83 src += bsize;
84 } while ((nbytes -= bsize) >= bsize);
85
86 memcpy(walk->iv, iv, bsize);
87
88 return nbytes;
89}

--- 30 unchanged lines hidden (view full) ---

120 unsigned int nbytes = walk->nbytes;
121 u8 *src = walk->src.virt.addr;
122 u8 *dst = walk->dst.virt.addr;
123 u8 *iv = walk->iv;
124
125 do {
126 crypto_cipher_decrypt_one(tfm, dst, src);
127 crypto_xor(dst, iv, bsize);
130 memcpy(iv, src, bsize);
131 crypto_xor(iv, dst, bsize);
128 crypto_xor_cpy(iv, dst, src, bsize);
132
133 src += bsize;
134 dst += bsize;
135 } while ((nbytes -= bsize) >= bsize);
136
137 memcpy(walk->iv, iv, bsize);
138
139 return nbytes;

--- 8 unchanged lines hidden (view full) ---

148 u8 *src = walk->src.virt.addr;
149 u8 *iv = walk->iv;
150 u8 tmpbuf[bsize] __aligned(__alignof__(u32));
151
152 do {
153 memcpy(tmpbuf, src, bsize);
154 crypto_cipher_decrypt_one(tfm, src, src);
155 crypto_xor(src, iv, bsize);
129
130 src += bsize;
131 dst += bsize;
132 } while ((nbytes -= bsize) >= bsize);
133
134 memcpy(walk->iv, iv, bsize);
135
136 return nbytes;

--- 8 unchanged lines hidden (view full) ---

145 u8 *src = walk->src.virt.addr;
146 u8 *iv = walk->iv;
147 u8 tmpbuf[bsize] __aligned(__alignof__(u32));
148
149 do {
150 memcpy(tmpbuf, src, bsize);
151 crypto_cipher_decrypt_one(tfm, src, src);
152 crypto_xor(src, iv, bsize);
156 memcpy(iv, tmpbuf, bsize);
157 crypto_xor(iv, src, bsize);
153 crypto_xor_cpy(iv, src, tmpbuf, bsize);
158
159 src += bsize;
160 } while ((nbytes -= bsize) >= bsize);
161
162 memcpy(walk->iv, iv, bsize);
163
164 return nbytes;
165}

--- 148 unchanged lines hidden ---
154
155 src += bsize;
156 } while ((nbytes -= bsize) >= bsize);
157
158 memcpy(walk->iv, iv, bsize);
159
160 return nbytes;
161}

--- 148 unchanged lines hidden ---