Skip to content

Commit ad835ea

Browse files
committed
kernel-src/wolfcrypt_glue.c: refactor wc_linuxkm_drbg_init_ctx() and wc_linuxkm_drbg_ctx_clear() to use wc_rng_bank_default_checkout() and wc_rng_bank_default_checkin().
1 parent 09553d9 commit ad835ea

File tree

1 file changed

+4
-17
lines changed

1 file changed

+4
-17
lines changed

kernel-src/wolfcrypt_glue.c

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -827,25 +827,11 @@ int wc_linuxkm_drbg_init_ctx(struct wc_rng_bank **ctx) {
827827

828828
#ifdef LINUXKM_LKCAPI_REGISTER_HASH_DRBG_DEFAULT
829829

830-
struct crypto_rng *current_crypto_default_rng;
830+
ret = wc_rng_bank_default_checkout(ctx);
831831

832-
ret = crypto_get_default_rng();
833832
if (ret != 0)
834833
goto new_bank;
835834

836-
current_crypto_default_rng = crypto_default_rng;
837-
838-
if (current_crypto_default_rng == NULL) {
839-
crypto_put_default_rng();
840-
goto new_bank;
841-
}
842-
843-
if (! wc_linux_kernel_rng_is_wolfcrypt(current_crypto_default_rng)) {
844-
crypto_put_default_rng();
845-
goto new_bank;
846-
}
847-
848-
*ctx = (struct wc_rng_bank *)crypto_rng_ctx(current_crypto_default_rng);
849835
wc_wg_drbg_is_global_default = 1;
850836

851837
return 0;
@@ -886,9 +872,10 @@ void wc_linuxkm_drbg_ctx_clear(struct wc_rng_bank **ctx) {
886872

887873
#ifdef LINUXKM_LKCAPI_REGISTER_HASH_DRBG_DEFAULT
888874
if (wc_wg_drbg_is_global_default) {
889-
*ctx = NULL;
875+
int ret = wc_rng_bank_default_checkin(ctx);
876+
if (ret != 0)
877+
pr_err("ERROR: wc_rng_bank_default_checkin() in wc_linuxkm_drbg_ctx_clear() failed with code %d.\n", ret);
890878
wc_wg_drbg_is_global_default = 0;
891-
crypto_put_default_rng();
892879
}
893880
else
894881
#endif

0 commit comments

Comments
 (0)