]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/basic/random-util.h
1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
8 void random_bytes(void *p
, size_t n
); /* Returns random bytes suitable for most uses, but may be insecure sometimes. */
9 int crypto_random_bytes(void *p
, size_t n
); /* Returns secure random bytes after waiting for the RNG to initialize. */
11 static inline uint64_t random_u64(void) {
13 random_bytes(&u
, sizeof(u
));
17 static inline uint32_t random_u32(void) {
19 random_bytes(&u
, sizeof(u
));
23 /* Some limits on the pool sizes when we deal with the kernel random pool */
24 #define RANDOM_POOL_SIZE_MIN 32U
25 #define RANDOM_POOL_SIZE_MAX (10U*1024U*1024U)
26 #define RANDOM_EFI_SEED_SIZE 32U
28 size_t random_pool_size(void);
30 int random_write_entropy(int fd
, const void *seed
, size_t size
, bool credit
);
32 uint64_t random_u64_range(uint64_t max
);