diff --git a/Makefile b/Makefile index 61e2b40..4aa2d25 100644 --- a/Makefile +++ b/Makefile @@ -8,11 +8,12 @@ PROGEXT = .elf SRCS = main.c SRCS+= strobe_rng_init.c +CFLAGS+= -I$(.CURDIR) CFLAGS+= -DNDEBUG # Strobe .PATH: $(.CURDIR)/strobe -CFLAGS = -I$(.CURDIR)/strobe +CFLAGS+= -I$(.CURDIR)/strobe SRCS+= strobe.c \ x25519.c @@ -28,6 +29,7 @@ CFLAGS+= -I$(STM32)/l151ccux CFLAGS+= -DSTM32L151xC OBJS = $(SRCS:C/.c$/.o/) +CFLAGS+= -Werror -Wall .PHONY: all all: $(PROG)$(PROGEXT) $(PROG).list diff --git a/strobe_rng_init.c b/strobe_rng_init.c index ffeff92..4176fd7 100644 --- a/strobe_rng_init.c +++ b/strobe_rng_init.c @@ -2,7 +2,7 @@ #include -extern char rng_save; +extern uint8_t rng_save; extern int rng_save_len; void @@ -10,7 +10,16 @@ strobe_rng_init(void) { int r; + /* + * Seed RNG + * On first boot, SRAM is uninitialized and randomness from + * it is used. On reset, the previously saved state is used. + */ strobe_seed_prng(&rng_save, 2*1024); + /* + * Save entropy for next reset. + */ r = strobe_randomize(&rng_save, rng_save_len); + (void)r; }