diff --git a/src/zen_random.c b/src/zen_random.c index 134efd2..1774573 100644 --- a/src/zen_random.c +++ b/src/zen_random.c @@ -68,7 +68,7 @@ void* rng_alloc() { return NULL; } // random seed provided externally - if(Z->random_seed[0]) { + if(Z->random_external) { act(Z->lua,"Random seed is external, deterministic execution"); #ifndef ARCH_CORTEX } else { diff --git a/src/zenroom.c b/src/zenroom.c index 1cf849f..238071d 100644 --- a/src/zenroom.c +++ b/src/zenroom.c @@ -161,13 +161,12 @@ zenroom_t *zen_init(const char *conf, char *keys, char *data) { Z->userdata = NULL; Z->errorlevel = get_debug(); Z->random_generator = NULL; - Z->random_seed[0] = 0x0; // flag for external rngseed + Z->random_external = 0; // use RNGseed from configuration if present (deterministic mode) if(zconf_rngseed[0] != 0x0) { - // short p = 0; - // if(zconf_rngseed[0] == '0' && zconf_rngseed[1] == 'x') p += 2; - // hex2buf(Z->random_seed, &zconf_rngseed[p]); + Z->random_external = 1; + memset(Z->random_seed, 0x0, 256); hex2buf(Z->random_seed, zconf_rngseed); } // initialize the random generator diff --git a/src/zenroom.h b/src/zenroom.h index 911c8a2..5c4b683 100644 --- a/src/zenroom.h +++ b/src/zenroom.h @@ -70,6 +70,7 @@ typedef struct { void *random_generator; // cast to RNG char random_seed[RANDOM_SEED_LEN]; + int random_external; // signal when rngseed is external int errorlevel; void *userdata; // anything passed at init (reserved for caller) diff --git a/test/zencode_dp3t/run.sh b/test/zencode_dp3t/run.sh index 31203dc..9613b7e 100755 --- a/test/zencode_dp3t/run.sh +++ b/test/zencode_dp3t/run.sh @@ -2,6 +2,8 @@ # https://github.com/DP-3T/documents +RNGSEED=hex:00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + #################### # common script init if ! test -r ../utils.sh; then @@ -46,8 +48,8 @@ Then print the 'ephemeral ids' EOF -# now generate a test with 40.000 infected SK -cat < SK_infected_40k.json +# now generate a test with 20.000 infected SK +cat < SK_infected_20k.json rule check version 1.0.0 rule input encoding hex rule output encoding hex @@ -58,7 +60,7 @@ Then print the 'list of infected' EOF # extract a few random infected ephemeral ids to simulate proximity -cat <