mirror of
https://github.com/micropython/micropython.git
synced 2026-01-07 12:40:15 +01:00
extmod/modurandom: Add "urandom" module.
Seedable and reproducible pseudo-random number generator. Implemented functions are getrandbits(n) (n <= 32) and seed(). The algorithm used is Yasmarang by Ilya Levin: http://www.literatecode.com/yasmarang
This commit is contained in:
@@ -101,6 +101,7 @@ extern const mp_obj_module_t mp_module_ure;
|
||||
extern const mp_obj_module_t mp_module_uheapq;
|
||||
extern const mp_obj_module_t mp_module_uhashlib;
|
||||
extern const mp_obj_module_t mp_module_ubinascii;
|
||||
extern const mp_obj_module_t mp_module_urandom;
|
||||
extern const mp_obj_module_t mp_module_ussl;
|
||||
extern const mp_obj_module_t mp_module_machine;
|
||||
extern const mp_obj_module_t mp_module_lwip;
|
||||
|
||||
@@ -783,6 +783,10 @@ typedef double mp_float_t;
|
||||
#define MICROPY_PY_UBINASCII (0)
|
||||
#endif
|
||||
|
||||
#ifndef MICROPY_PY_URANDOM
|
||||
#define MICROPY_PY_URANDOM (0)
|
||||
#endif
|
||||
|
||||
#ifndef MICROPY_PY_MACHINE
|
||||
#define MICROPY_PY_MACHINE (0)
|
||||
#endif
|
||||
|
||||
@@ -184,6 +184,9 @@ STATIC const mp_rom_map_elem_t mp_builtin_module_table[] = {
|
||||
#if MICROPY_PY_UBINASCII
|
||||
{ MP_ROM_QSTR(MP_QSTR_ubinascii), MP_ROM_PTR(&mp_module_ubinascii) },
|
||||
#endif
|
||||
#if MICROPY_PY_URANDOM
|
||||
{ MP_ROM_QSTR(MP_QSTR_urandom), MP_ROM_PTR(&mp_module_urandom) },
|
||||
#endif
|
||||
#if MICROPY_PY_USSL
|
||||
{ MP_ROM_QSTR(MP_QSTR_ussl), MP_ROM_PTR(&mp_module_ussl) },
|
||||
#endif
|
||||
|
||||
1
py/py.mk
1
py/py.mk
@@ -168,6 +168,7 @@ PY_O_BASENAME = \
|
||||
../extmod/modubinascii.o \
|
||||
../extmod/machine_mem.o \
|
||||
../extmod/modussl.o \
|
||||
../extmod/modurandom.o \
|
||||
../extmod/fsusermount.o \
|
||||
../extmod/moduos_dupterm.o \
|
||||
|
||||
|
||||
@@ -671,3 +671,9 @@ Q(count)
|
||||
#if MICROPY_PY_OS_DUPTERM
|
||||
Q(dupterm)
|
||||
#endif
|
||||
|
||||
#if MICROPY_PY_URANDOM
|
||||
Q(urandom)
|
||||
Q(getrandbits)
|
||||
Q(seed)
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user