int main() { int i; int tests=0; unsigned myseed; printf("1..10\n"); unsigned int numbers[10]; rand_set_seed(0x19610910); for (i = 0;i < 10;i++) { numbers[i] = rand_rand(); } myseed = 0x19610910; for (i = 0; i < 3; i++) { for (i = 0;i<10;i++) { unsigned int n = rand_rand_r(&myseed); if (n == numbers[i]) { printf("ok %d\n",++tests); } else { printf("not ok %d # got: %d expected: %d\n",++tests,n,numbers[i]); } } } return 0; }
void random_init(void) { unsigned int seed; if (RAND_status() == 0) { i_fatal("Random generator not initialized: " "Install egd on /var/run/egd-pool"); } random_fill(&seed, sizeof(seed)); rand_set_seed(seed); }
void random_init(void) { unsigned int seed; if (init_refcount++ > 0) return; urandom_fd = open(DEV_URANDOM_PATH, O_RDONLY); if (urandom_fd == -1) { if (errno == ENOENT) { i_fatal(DEV_URANDOM_PATH" doesn't exist, " "currently we require it"); } else { i_fatal("Can't open "DEV_URANDOM_PATH": %m"); } } random_fill(&seed, sizeof(seed)); rand_set_seed(seed); fd_close_on_exec(urandom_fd, TRUE); }