diff --git a/sys/include/random.h b/sys/include/random.h index 56baa9f7a6..d762149383 100644 --- a/sys/include/random.h +++ b/sys/include/random.h @@ -78,7 +78,7 @@ void random_init(uint32_t s); * slight change for C++, 2004/2/26 * * @param init_key array of keys (seeds) to initialize the PRNG - * @param key_length number of lements in init_key + * @param key_length number of elements in init_key */ void random_init_by_array(uint32_t init_key[], int key_length); diff --git a/sys/random/shaxprng.c b/sys/random/shaxprng.c index dfbe01e2f9..f57c73c080 100644 --- a/sys/random/shaxprng.c +++ b/sys/random/shaxprng.c @@ -149,7 +149,7 @@ void _random_bytes(uint8_t *bytes, size_t size) void random_init_by_array(uint32_t init_key[], int key_length) { _shax_init(&ctx); - _shax_update(&ctx, init_key, key_length); + _shax_update(&ctx, init_key, key_length * sizeof(uint32_t)); _shax_final(&ctx, digestdata); /* copy SHA digestdata to PRNG state */ @@ -161,7 +161,7 @@ void random_init_by_array(uint32_t init_key[], int key_length) void random_init(uint32_t seed) { - random_init_by_array((uint32_t *)&seed, sizeof(seed)); + random_init_by_array((uint32_t *)&seed, 1); } uint32_t random_uint32(void) diff --git a/tests/sys/prng_sha1prng/main.c b/tests/sys/prng_sha1prng/main.c index 8bd4828f4d..22388668f9 100644 --- a/tests/sys/prng_sha1prng/main.c +++ b/tests/sys/prng_sha1prng/main.c @@ -57,7 +57,7 @@ static void test_prng_sha1prng_java_u32(void) /* seed the generator with 8 bytes similar to the java reference * implementation */ - random_init_by_array(seed, sizeof(seed)); + random_init_by_array(seed, ARRAY_SIZE(seed)); /* request random samples */ for (unsigned i = 0; i < ARRAY_SIZE(seq_seed1); i++) {