diff --git a/pycardium/mpconfigport.h b/pycardium/mpconfigport.h index d6affbd41aade2015de61c2b3f07d3d0d93d7520..a1c88a7476f0b63111a4e6049aaac33f32b7fa0c 100644 --- a/pycardium/mpconfigport.h +++ b/pycardium/mpconfigport.h @@ -23,6 +23,9 @@ #define MICROPY_ENABLE_SOURCE_LINE (1) +/* urandom init */ +int mp_hal_trng_read_int(void); + /* Builtin function and modules */ #define MICROPY_PY_ALL_SPECIAL_METHODS (1) #define MICROPY_PY_BUILTINS_HELP (1) @@ -32,6 +35,7 @@ #define MICROPY_PY_UJSON (1) #define MICROPY_PY_URANDOM (1) #define MICROPY_PY_URANDOM_EXTRA_FUNCS (1) +#define MICROPY_PY_URANDOM_SEED_INIT_FUNC (mp_hal_trng_read_int()) #define MICROPY_PY_URE (1) #define MICROPY_PY_URE_MATCH_GROUPS (1) #define MICROPY_PY_URE_MATCH_SPAN_START_END (1) diff --git a/pycardium/mphalport.c b/pycardium/mphalport.c index 1fa75b64720aca8111844f56f259bb3499f388fd..60cd9df0cdf1e08a01ffd3df84772d9c6276e7ac 100644 --- a/pycardium/mphalport.c +++ b/pycardium/mphalport.c @@ -152,3 +152,14 @@ void NORETURN nlr_jump_fail(void *val) Reset_Handler(); } + +/****************************************************************************** + * TRNG + */ + +int mp_hal_trng_read_int(void) +{ + int result; + epic_trng_read((uint8_t *)&result, sizeof(result)); + return result; +}