From 48e90983ac86e8055bb6e5ad8d6173aca89ba3bb Mon Sep 17 00:00:00 2001 From: Marcelo Aquino Date: Sun, 21 Aug 2016 23:42:44 -0300 Subject: [PATCH] Add random number initialization to MyHw layer --- core/MyHwATMega328.h | 1 + core/MyHwESP8266.h | 3 ++- core/MyHwSAMD.h | 1 + core/MySigningAtsha204Soft.cpp | 2 +- 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/core/MyHwATMega328.h b/core/MyHwATMega328.h index 8d6c102..0efd911 100644 --- a/core/MyHwATMega328.h +++ b/core/MyHwATMega328.h @@ -63,6 +63,7 @@ do { \ #define hwWatchdogReset() wdt_reset() #define hwReboot() wdt_enable(WDTO_15MS); while (1) #define hwMillis() millis() +#define hwRandomNumberInit() randomSeed(analogRead(MY_SIGNING_SOFT_RANDOMSEED_PIN)) #define hwReadConfig(__pos) (eeprom_read_byte((uint8_t*)(__pos))) #ifndef eeprom_update_byte diff --git a/core/MyHwESP8266.h b/core/MyHwESP8266.h index ffbcb69..f021b5b 100644 --- a/core/MyHwESP8266.h +++ b/core/MyHwESP8266.h @@ -37,8 +37,9 @@ #define hwDigitalWrite(__pin, __value) (digitalWrite(__pin, __value)) #define hwInit() MY_SERIALDEVICE.begin(MY_BAUD_RATE); MY_SERIALDEVICE.setDebugOutput(true) #define hwWatchdogReset() wdt_reset() -#define hwReboot() ESP.restart(); +#define hwReboot() ESP.restart() #define hwMillis() millis() +#define hwRandomNumberInit() randomSeed(analogRead(MY_SIGNING_SOFT_RANDOMSEED_PIN)) void hwReadConfigBlock(void* buf, void* adr, size_t length); void hwWriteConfigBlock(void* buf, void* adr, size_t length); diff --git a/core/MyHwSAMD.h b/core/MyHwSAMD.h index dce2dba..6df3162 100644 --- a/core/MyHwSAMD.h +++ b/core/MyHwSAMD.h @@ -43,6 +43,7 @@ void hwInit(); void hwWatchdogReset(); void hwReboot(); #define hwMillis() millis() +#define hwRandomNumberInit() randomSeed(analogRead(MY_SIGNING_SOFT_RANDOMSEED_PIN)) void hwReadConfigBlock(void* buf, void* adr, size_t length); void hwWriteConfigBlock(void* buf, void* adr, size_t length); diff --git a/core/MySigningAtsha204Soft.cpp b/core/MySigningAtsha204Soft.cpp index 400895f..740db9d 100644 --- a/core/MySigningAtsha204Soft.cpp +++ b/core/MySigningAtsha204Soft.cpp @@ -92,7 +92,7 @@ static void DEBUG_SIGNING_PRINTBUF(const __FlashStringHelper* str, uint8_t* buf, void signerAtsha204SoftInit(void) { // initialize pseudo-RNG - randomSeed(analogRead(MY_SIGNING_SOFT_RANDOMSEED_PIN)); + hwRandomNumberInit(); // Set secrets hwReadConfigBlock((void*)_signing_hmac_key, (void*)EEPROM_SIGNING_SOFT_HMAC_KEY_ADDRESS, 32); hwReadConfigBlock((void*)_signing_node_serial_info, (void*)EEPROM_SIGNING_SOFT_SERIAL_ADDRESS, 9);