@@ -3561,11 +3561,10 @@ int wc_GenerateSeed(OS_Seed* os, byte* output, word32 sz)
35613561 #endif
35623562
35633563#ifndef NO_FILESYSTEM
3564- #ifndef NO_DEV_URANDOM /* way to disable use of /dev/urandom */
3565- #ifdef WOLFSSL_KEEP_RNG_SEED_FD_OPEN
3564+ #ifdef WOLFSSL_KEEP_RNG_SEED_FD_OPEN
35663565 if (!os -> seedFdOpen )
3567- #endif
35683566 {
3567+ #ifndef NO_DEV_URANDOM /* way to disable use of /dev/urandom */
35693568 os -> fd = open ("/dev/urandom" , O_RDONLY );
35703569 #if defined(DEBUG_WOLFSSL )
35713570 WOLFSSL_MSG ("opened /dev/urandom." );
@@ -3575,25 +3574,39 @@ int wc_GenerateSeed(OS_Seed* os, byte* output, word32 sz)
35753574 {
35763575 /* may still have /dev/random */
35773576 os -> fd = open ("/dev/random" , O_RDONLY );
3578- #if defined(DEBUG_WOLFSSL )
3577+ #if defined(DEBUG_WOLFSSL )
35793578 WOLFSSL_MSG ("opened /dev/random." );
3580- #endif
3579+ #endif
35813580 if (os -> fd == -1 )
35823581 return OPEN_RAN_E ;
3583- #ifdef WOLFSSL_KEEP_RNG_SEED_FD_OPEN
35843582 else {
35853583 os -> keepSeedFdOpen = 0 ;
35863584 os -> seedFdOpen = 1 ;
35873585 }
3588- #endif
35893586 }
3590- #ifdef WOLFSSL_KEEP_RNG_SEED_FD_OPEN
35913587 else {
35923588 os -> keepSeedFdOpen = 1 ;
35933589 os -> seedFdOpen = 1 ;
35943590 }
3591+ }
3592+ #else
3593+ #ifndef NO_DEV_URANDOM /* way to disable use of /dev/urandom */
3594+ os -> fd = open ("/dev/urandom" , O_RDONLY );
3595+ #if defined(DEBUG_WOLFSSL )
3596+ WOLFSSL_MSG ("opened /dev/urandom." );
3597+ #endif
3598+ if (os -> fd == -1 )
3599+ #endif
3600+ {
3601+ /* may still have /dev/random */
3602+ os -> fd = open ("/dev/random" , O_RDONLY );
3603+ #if defined(DEBUG_WOLFSSL )
3604+ WOLFSSL_MSG ("opened /dev/random." );
35953605 #endif
3606+ if (os -> fd == -1 )
3607+ return OPEN_RAN_E ;
35963608 }
3609+ #endif
35973610 #if defined(DEBUG_WOLFSSL )
35983611 WOLFSSL_MSG ("rnd read..." );
35993612 #endif
0 commit comments