/* * Copyright (c) 2024 Nordic Semiconductor ASA * * SPDX-License-Identifier: Apache-2.0 * * Bottom/Linux side of the pseudo-random entropy generator for * ARCH_POSIX architecture */ #undef _XOPEN_SOURCE #define _XOPEN_SOURCE 700 #include #include #include #include #include #include "nsi_tracing.h" void entropy_native_seed(unsigned int seed, bool seed_random) { if (seed_random == false) { srandom(seed); } else { unsigned int buf; int err = getrandom(&buf, sizeof(buf), 0); if (err != sizeof(buf)) { nsi_print_error_and_exit("Could not get random number (%i, %s)\n", err, strerror(errno)); } srandom(buf); /* Let's print the seed so users can still reproduce the run if they need to */ nsi_print_trace("Random generator seeded with 0x%X\n", buf); } }