.. | .. |
---|
147 | 147 | size_t blocksize, keybytes, keylength, n; |
---|
148 | 148 | unsigned char *inblockdata, *outblockdata, *rawkey; |
---|
149 | 149 | struct xdr_netobj inblock, outblock; |
---|
150 | | - struct crypto_skcipher *cipher; |
---|
| 150 | + struct crypto_sync_skcipher *cipher; |
---|
151 | 151 | u32 ret = EINVAL; |
---|
152 | 152 | |
---|
153 | 153 | blocksize = gk5e->blocksize; |
---|
.. | .. |
---|
157 | 157 | if ((inkey->len != keylength) || (outkey->len != keylength)) |
---|
158 | 158 | goto err_return; |
---|
159 | 159 | |
---|
160 | | - cipher = crypto_alloc_skcipher(gk5e->encrypt_name, 0, |
---|
161 | | - CRYPTO_ALG_ASYNC); |
---|
| 160 | + cipher = crypto_alloc_sync_skcipher(gk5e->encrypt_name, 0, 0); |
---|
162 | 161 | if (IS_ERR(cipher)) |
---|
163 | 162 | goto err_return; |
---|
164 | | - if (crypto_skcipher_setkey(cipher, inkey->data, inkey->len)) |
---|
| 163 | + if (crypto_sync_skcipher_setkey(cipher, inkey->data, inkey->len)) |
---|
165 | 164 | goto err_return; |
---|
166 | 165 | |
---|
167 | 166 | /* allocate and set up buffers */ |
---|
.. | .. |
---|
229 | 228 | ret = 0; |
---|
230 | 229 | |
---|
231 | 230 | err_free_raw: |
---|
232 | | - memset(rawkey, 0, keybytes); |
---|
233 | | - kfree(rawkey); |
---|
| 231 | + kfree_sensitive(rawkey); |
---|
234 | 232 | err_free_out: |
---|
235 | | - memset(outblockdata, 0, blocksize); |
---|
236 | | - kfree(outblockdata); |
---|
| 233 | + kfree_sensitive(outblockdata); |
---|
237 | 234 | err_free_in: |
---|
238 | | - memset(inblockdata, 0, blocksize); |
---|
239 | | - kfree(inblockdata); |
---|
| 235 | + kfree_sensitive(inblockdata); |
---|
240 | 236 | err_free_cipher: |
---|
241 | | - crypto_free_skcipher(cipher); |
---|
| 237 | + crypto_free_sync_skcipher(cipher); |
---|
242 | 238 | err_return: |
---|
243 | 239 | return ret; |
---|
244 | 240 | } |
---|