From 64489e8b444efde859e9f048b17707e5da88a983 Mon Sep 17 00:00:00 2001 From: Hauke Petersen <hauke.petersen@fu-berlin.de> Date: Fri, 8 Feb 2019 14:41:57 +0100 Subject: [PATCH] sys/random: add hwrng as seed source (if available) --- Makefile.dep | 4 ++++ sys/random/random.c | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/Makefile.dep b/Makefile.dep index fac5838696..f89090bbb5 100644 --- a/Makefile.dep +++ b/Makefile.dep @@ -661,6 +661,10 @@ ifneq (,$(filter random,$(USEMODULE))) USEMODULE += hashes endif + ifeq (,$(filter puf_sram,$(USEMODULE))) + FEATURES_OPTIONAL += periph_hwrng + endif + USEMODULE += luid endif diff --git a/sys/random/random.c b/sys/random/random.c index 3d356c8dca..ffd23fcfff 100644 --- a/sys/random/random.c +++ b/sys/random/random.c @@ -1,5 +1,6 @@ /** * Copyright (C) 2017 Kaspar Schleiser <kaspar@schleiser.de> + * 2019 Freie Universität Berlin * * This file is subject to the terms and conditions of the GNU Lesser * General Public License v2.1. See the file LICENSE in the top level @@ -14,6 +15,7 @@ * @brief PRNG seeding * * @author Kaspar Schleiser <kaspar@schleiser.de> + * @author Hauke Petersen <hauke.petersen@fu-berlin.de> * @} */ @@ -25,6 +27,9 @@ #ifdef MODULE_PUF_SRAM #include "puf_sram.h" #endif +#ifdef MODULE_PERIPH_HWRNG +#include "periph/hwrng.h" +#endif #ifdef MODULE_PERIPH_CPUID #include "periph/cpuid.h" #endif @@ -41,6 +46,8 @@ void auto_init_random(void) LOG_WARNING("random: PUF SEED not fresh\n"); } seed = puf_sram_seed; +#elif defined (MODULE_PERIPH_HWRNG) + hwrng_read(&seed, 4); #elif defined (MODULE_PERIPH_CPUID) luid_get(&seed, 4); #else -- GitLab