mirror of
https://github.com/gosticks/RIOT.git
synced 2026-10-06 07:47:09 +00:00
Merge pull request #13137 from PeterKietzmann/pr_puf_opt_softreset
sys/puf_sram: counter based seed after soft reset
This commit is contained in:
@@ -89,6 +89,13 @@ extern uint32_t puf_sram_seed;
|
||||
*/
|
||||
extern uint32_t puf_sram_state;
|
||||
|
||||
/**
|
||||
* @brief Counter variable allocated in puf_sram.c. It is incremented
|
||||
during each soft reset when no new PUF measurement was taken
|
||||
and it gets reset to zero after a power cycle was detected.
|
||||
*/
|
||||
extern uint32_t puf_sram_softreset_cnt;
|
||||
|
||||
/**
|
||||
* @brief checks source of reboot by @p puf_sram_softreset and conditionally
|
||||
calls @p puf_sram_generate
|
||||
|
||||
@@ -24,6 +24,9 @@ PUF_SRAM_ATTRIBUTES uint32_t puf_sram_seed;
|
||||
/* Allocation of the PUF seed state */
|
||||
PUF_SRAM_ATTRIBUTES uint32_t puf_sram_state;
|
||||
|
||||
/* Allocation of the PUF soft reset conter*/
|
||||
PUF_SRAM_ATTRIBUTES uint32_t puf_sram_softreset_cnt;
|
||||
|
||||
/* Allocation of the memory marker */
|
||||
PUF_SRAM_ATTRIBUTES uint32_t puf_sram_marker;
|
||||
|
||||
@@ -42,6 +45,8 @@ void puf_sram_generate(const uint8_t *ram, size_t len)
|
||||
puf_sram_marker = PUF_SRAM_MARKER;
|
||||
/* setting state to 0 means seed was generated from SRAM pattern */
|
||||
puf_sram_state = 0;
|
||||
/* reset counter of detected soft resets */
|
||||
puf_sram_softreset_cnt = 0;
|
||||
}
|
||||
|
||||
bool puf_sram_softreset(void)
|
||||
@@ -51,5 +56,12 @@ bool puf_sram_softreset(void)
|
||||
return 0;
|
||||
}
|
||||
puf_sram_state = 1;
|
||||
|
||||
/* increment number of detected soft resets */
|
||||
puf_sram_softreset_cnt++;
|
||||
|
||||
/* generate alterntive seed value */
|
||||
puf_sram_seed ^= puf_sram_softreset_cnt;
|
||||
puf_sram_seed = dek_hash((uint8_t *)&puf_sram_seed, sizeof(puf_sram_seed));
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -3,5 +3,6 @@ BOARD ?= nucleo-f411re
|
||||
include ../Makefile.tests_common
|
||||
|
||||
USEMODULE += puf_sram
|
||||
DISABLE_MODULE += test_utils_interactive_sync
|
||||
|
||||
include $(RIOTBASE)/Makefile.include
|
||||
|
||||
Reference in New Issue
Block a user