From e02671f1de02798ea4596becfb32ce37d5e3b6a3 Mon Sep 17 00:00:00 2001 From: koalo <koalo@koalo.de> Date: Wed, 21 Aug 2019 00:18:05 +0200 Subject: [PATCH] feat(pycardium): Seed urandom with TRNG --- pycardium/mpconfigport.h | 4 ++++ pycardium/mphalport.c | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/pycardium/mpconfigport.h b/pycardium/mpconfigport.h index d6affbd4..a1c88a74 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 1fa75b64..60cd9df0 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; +} -- GitLab