]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
lib:util: Add generate_random_u64_range()
authorAndreas Schneider <asn@samba.org>
Thu, 14 Jul 2022 05:56:39 +0000 (07:56 +0200)
committerAndreas Schneider <asn@cryptomilk.org>
Thu, 28 Jul 2022 11:51:29 +0000 (11:51 +0000)
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
lib/util/genrand_util.c
lib/util/samba_util.h

index fdc2654a20443e9d339d137465bc64fa3603a35d..82103f59bd7939d2be25bab95f2ec88e44332a00 100644 (file)
@@ -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 {
index b30435b43620aea1d200aef06cefaa44adb73695..4762a7c523f3f1041511a1123d0095319459d3ca 100644 (file)
@@ -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.
  *