hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
kernel/net/sunrpc/auth_gss/gss_krb5_keys.c
....@@ -147,7 +147,7 @@
147147 size_t blocksize, keybytes, keylength, n;
148148 unsigned char *inblockdata, *outblockdata, *rawkey;
149149 struct xdr_netobj inblock, outblock;
150
- struct crypto_skcipher *cipher;
150
+ struct crypto_sync_skcipher *cipher;
151151 u32 ret = EINVAL;
152152
153153 blocksize = gk5e->blocksize;
....@@ -157,11 +157,10 @@
157157 if ((inkey->len != keylength) || (outkey->len != keylength))
158158 goto err_return;
159159
160
- cipher = crypto_alloc_skcipher(gk5e->encrypt_name, 0,
161
- CRYPTO_ALG_ASYNC);
160
+ cipher = crypto_alloc_sync_skcipher(gk5e->encrypt_name, 0, 0);
162161 if (IS_ERR(cipher))
163162 goto err_return;
164
- if (crypto_skcipher_setkey(cipher, inkey->data, inkey->len))
163
+ if (crypto_sync_skcipher_setkey(cipher, inkey->data, inkey->len))
165164 goto err_return;
166165
167166 /* allocate and set up buffers */
....@@ -229,16 +228,13 @@
229228 ret = 0;
230229
231230 err_free_raw:
232
- memset(rawkey, 0, keybytes);
233
- kfree(rawkey);
231
+ kfree_sensitive(rawkey);
234232 err_free_out:
235
- memset(outblockdata, 0, blocksize);
236
- kfree(outblockdata);
233
+ kfree_sensitive(outblockdata);
237234 err_free_in:
238
- memset(inblockdata, 0, blocksize);
239
- kfree(inblockdata);
235
+ kfree_sensitive(inblockdata);
240236 err_free_cipher:
241
- crypto_free_skcipher(cipher);
237
+ crypto_free_sync_skcipher(cipher);
242238 err_return:
243239 return ret;
244240 }