From b938ca635c6ddd166d31f3b1b2aedd79ec31b5cd Mon Sep 17 00:00:00 2001 From: Arseny Smirnov Date: Thu, 4 Jul 2019 12:55:17 +0200 Subject: [PATCH] Random: secure_uint{32,64} GitOrigin-RevId: 5cc15552bc0d103cbe93935d3c75256845e3a39b --- tdutils/td/utils/Random.cpp | 12 ++++++++++++ tdutils/td/utils/Random.h | 2 ++ 2 files changed, 14 insertions(+) diff --git a/tdutils/td/utils/Random.cpp b/tdutils/td/utils/Random.cpp index d512fb8b..ebb24f86 100644 --- a/tdutils/td/utils/Random.cpp +++ b/tdutils/td/utils/Random.cpp @@ -81,6 +81,18 @@ int64 Random::secure_int64() { return res; } +uint32 Random::secure_uint32() { + uint32 res = 0; + secure_bytes(reinterpret_cast(&res), sizeof(uint32)); + return res; +} + +uint64 Random::secure_uint64() { + uint64 res = 0; + secure_bytes(reinterpret_cast(&res), sizeof(uint64)); + return res; +} + void Random::add_seed(Slice bytes, double entropy) { RAND_add(bytes.data(), static_cast(bytes.size()), entropy); random_seed_generation++; diff --git a/tdutils/td/utils/Random.h b/tdutils/td/utils/Random.h index d99b16e0..87f4904d 100644 --- a/tdutils/td/utils/Random.h +++ b/tdutils/td/utils/Random.h @@ -18,6 +18,8 @@ class Random { static void secure_bytes(unsigned char *ptr, size_t size); static int32 secure_int32(); static int64 secure_int64(); + static uint32 secure_uint32(); + static uint64 secure_uint64(); // works only for current thread static void add_seed(Slice bytes, double entropy = 0);