From cc1cac9423384bad26e3d17f9409a41321fd2714 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Thu, 14 Jul 2022 07:56:39 +0200 Subject: [PATCH] lib:util: Add generate_random_u64_range() Signed-off-by: Andreas Schneider Reviewed-by: Stefan Metzmacher --- lib/util/genrand_util.c | 14 ++++++++++++++ lib/util/samba_util.h | 2 ++ 2 files changed, 16 insertions(+) diff --git a/lib/util/genrand_util.c b/lib/util/genrand_util.c index fdc2654a204..82103f59bd7 100644 --- a/lib/util/genrand_util.c +++ b/lib/util/genrand_util.c @@ -50,6 +50,20 @@ _PUBLIC_ uint64_t generate_random_u64(void) return BVAL(v, 0); } +/** + * @brief Generate a random number in the given range. + * + * @param lower The lower value of the range + + * @param upper The upper value of the range + * + * @return A random number bigger than than lower and smaller than upper. + */ +_PUBLIC_ uint64_t generate_random_u64_range(uint64_t lower, uint64_t upper) +{ + return generate_random_u64() % (upper - lower) + lower; +} + _PUBLIC_ uint64_t generate_unique_u64(uint64_t veto_value) { static struct generate_unique_u64_state { diff --git a/lib/util/samba_util.h b/lib/util/samba_util.h index b30435b4362..4762a7c523f 100644 --- a/lib/util/samba_util.h +++ b/lib/util/samba_util.h @@ -99,6 +99,8 @@ _PUBLIC_ uint32_t generate_random(void); **/ _PUBLIC_ uint64_t generate_random_u64(void); +_PUBLIC_ uint64_t generate_random_u64_range(uint64_t lower, uint64_t upper); + /** * @brief Generate random nonces usable for re-use detection. * -- 2.47.3