|
Electroneum
|
Go to the source code of this file.
Functions | |
| void | ub_systemseed (unsigned int seed) |
| struct ub_randstate * | ub_initstate (unsigned int seed, struct ub_randstate *from) |
| long int | ub_random (struct ub_randstate *state) |
| long int | ub_random_max (struct ub_randstate *state, long int x) |
| void | ub_randfree (struct ub_randstate *state) |
Thread safe random functions. Similar to arc4random() with an explicit initialisation routine.
Definition in file random.h.
| struct ub_randstate* ub_initstate | ( | unsigned int | seed, |
| struct ub_randstate * | from | ||
| ) |
Initialize a random generator state for use
| seed | seed value to create state contents. (ignored for arc4random). |
| from | if not NULL, the seed is taken from this random structure. can be used to seed random states via a parent-random-state that is itself seeded with entropy. |
| void ub_randfree | ( | struct ub_randstate * | state | ) |
Delete the random state.
| state | to delete. |
| long int ub_random | ( | struct ub_randstate * | state | ) |
Generate next random number from the state passed along. Thread safe, so random numbers are repeatable.
| state | must have been initialised with ub_initstate. |
| long int ub_random_max | ( | struct ub_randstate * | state, |
| long int | x | ||
| ) |
Generate random number between 0 and x-1. No modulo bias.
| state | must have been initialised with ub_initstate. |
| x | an upper limit. not (negative or zero). must be smaller than 2**31. |
| void ub_systemseed | ( | unsigned int | seed | ) |
Initialize the system randomness. Obtains entropy from the system before a chroot or privilege makes it unavailable. You do not have to call this, otherwise ub_initstate does so.
| seed | seed value to create state (if no good entropy is found). |