diff options
Diffstat (limited to 'ports/unix/moduos.c')
| -rw-r--r-- | ports/unix/moduos.c | 29 |
1 files changed, 1 insertions, 28 deletions
diff --git a/ports/unix/moduos.c b/ports/unix/moduos.c index c7cd19ca3..848a3612d 100644 --- a/ports/unix/moduos.c +++ b/ports/unix/moduos.c @@ -25,25 +25,12 @@ * THE SOFTWARE. */ -#include <fcntl.h> #include <stdlib.h> #include <string.h> #include "py/runtime.h" #include "py/mphal.h" -#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) -#if __GLIBC_PREREQ(2, 25) -#include <sys/random.h> -#define _HAVE_GETRANDOM -#endif -#endif - -#if _WIN32 -#include <windows.h> -#include <bcrypt.h> -#endif - STATIC mp_obj_t mp_uos_getenv(mp_obj_t var_in) { const char *s = getenv(mp_obj_str_get_str(var_in)); if (s == NULL) { @@ -105,21 +92,7 @@ STATIC mp_obj_t mp_uos_urandom(mp_obj_t num) { mp_int_t n = mp_obj_get_int(num); vstr_t vstr; vstr_init_len(&vstr, n); - #if _WIN32 - NTSTATUS result = BCryptGenRandom(NULL, (unsigned char *)vstr.buf, n, BCRYPT_USE_SYSTEM_PREFERRED_RNG); - if (!BCRYPT_SUCCESS(result)) { - mp_raise_OSError(errno); - } - #else - #ifdef _HAVE_GETRANDOM - RAISE_ERRNO(getrandom(vstr.buf, n, 0), errno); - #else - int fd = open("/dev/urandom", O_RDONLY); - RAISE_ERRNO(fd, errno); - RAISE_ERRNO(read(fd, vstr.buf, n), errno); - close(fd); - #endif - #endif + mp_hal_get_random(n, vstr.buf); return mp_obj_new_str_from_vstr(&mp_type_bytes, &vstr); } STATIC MP_DEFINE_CONST_FUN_OBJ_1(mp_uos_urandom_obj, mp_uos_urandom); |
