1
0
Fork 0
mirror of https://github.com/transmission/transmission synced 2025-01-03 05:25:52 +00:00

refactor: possible FTBFS fix on arm7 (#4492)

* refactor: possible FTBFS fix on arm7

* chore: remove tr_rand_int_weak() from crypto-test-ref

* refactor: move tr_rand_int() to header
This commit is contained in:
Charles Kerr 2022-12-29 10:30:03 -06:00 committed by GitHub
parent 192a76b621
commit 2b90a5fd55
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 26 deletions

View file

@ -31,23 +31,6 @@ using namespace std::literals;
///
template<class T>
[[nodiscard]] T tr_rand_int(T upper_bound)
{
static_assert(!std::is_signed<T>());
TR_ASSERT(upper_bound > std::numeric_limits<T>::min());
using dist_type = std::uniform_int_distribution<T>;
thread_local auto rng = tr_urbg<T>{};
thread_local auto dist = dist_type{};
return dist(rng, typename dist_type::param_type(0, upper_bound - 1));
}
template size_t tr_rand_int(size_t upper_bound);
template unsigned int tr_rand_int(unsigned int upper_bound);
///
namespace
{
namespace ssha1_impl

View file

@ -12,6 +12,7 @@
#include <limits>
#include <memory>
#include <optional>
#include <random> // for std::uniform_int_distribution<T>
#include <string>
#include <string_view>
@ -87,12 +88,6 @@ tr_x509_cert_t tr_x509_cert_new(void const* der, size_t der_length);
*/
void tr_x509_cert_free(tr_x509_cert_t handle);
/**
* @brief Returns a random number in the range of [0...upper_bound).
*/
template<class IntType>
[[nodiscard]] IntType tr_rand_int(IntType upper_bound);
/**
* @brief Fill a buffer with random bytes.
*/
@ -212,6 +207,20 @@ private:
tr_salt_shaker<T, N> buf_;
};
/**
* @brief Returns a random number in the range of [0...upper_bound).
*/
template<class T>
[[nodiscard]] T tr_rand_int(T upper_bound)
{
static_assert(!std::is_signed<T>());
using dist_type = std::uniform_int_distribution<T>;
thread_local auto rng = tr_urbg<T>{};
thread_local auto dist = dist_type{};
return dist(rng, typename dist_type::param_type(0, upper_bound - 1));
}
/** @} */
#endif /* TR_CRYPTO_UTILS_H */

View file

@ -18,7 +18,6 @@
#define tr_rand_buffer_crypto tr_rand_buffer_crypto_
#define tr_rand_buffer_std tr_rand_buffer_std_
#define tr_rand_int tr_rand_int_
#define tr_rand_int_weak tr_rand_int_weak_
#define tr_rand_obj tr_rand_obj_
#define tr_salt_shaker tr_salt_shaker_
#define tr_sha1 tr_sha1_
@ -54,7 +53,6 @@
#undef tr_rand_buffer_crypto
#undef tr_rand_buffer_std
#undef tr_rand_int
#undef tr_rand_int_weak
#undef tr_rand_obj
#undef tr_salt_shaker
#undef tr_sha1
@ -85,7 +83,6 @@
#define tr_rand_buffer_crypto_ tr_rand_buffer_crypto
#define tr_rand_buffer_std_ tr_rand_buffer_std
#define tr_rand_int_ tr_rand_int
#define tr_rand_int_weak_ tr_rand_int_weak
#define tr_rand_obj_ tr_rand_obj
#define tr_salt_shaker_ tr_salt_shaker
#define tr_sha1_ tr_sha1