diff options
| author | Shawn Hoffman <godisgovernment@gmail.com> | 2023-02-22 12:55:12 -0800 |
|---|---|---|
| committer | Shawn Hoffman <godisgovernment@gmail.com> | 2023-02-22 12:55:12 -0800 |
| commit | 2c2fb869a22130aafbcc2e5b2586342f9854d5e1 (patch) | |
| tree | fc9f904352720e39d364478b51dfc3ddc2e9766c /Source/Core | |
| parent | ebd98226db78aeac5d8d4d1afb87e673989e2a04 (diff) | |
use std-provided randomness for JitArm64 unittests
decreases runtime significantly and lessens dependency on mbedtls
Diffstat (limited to 'Source/Core')
| -rw-r--r-- | Source/Core/Common/Random.cpp | 32 | ||||
| -rw-r--r-- | Source/Core/Common/Random.h | 24 |
2 files changed, 0 insertions, 56 deletions
diff --git a/Source/Core/Common/Random.cpp b/Source/Core/Common/Random.cpp index 501da563b9..0c859eaa12 100644 --- a/Source/Core/Common/Random.cpp +++ b/Source/Core/Common/Random.cpp @@ -10,38 +10,6 @@ namespace Common::Random { -struct PRNG::Impl -{ - Impl(void* seed, std::size_t size) - { - mbedtls_hmac_drbg_init(&m_context); - const int ret = mbedtls_hmac_drbg_seed_buf( - &m_context, mbedtls_md_info_from_type(MBEDTLS_MD_SHA256), static_cast<u8*>(seed), size); - ASSERT(ret == 0); - } - - ~Impl() { mbedtls_hmac_drbg_free(&m_context); } - - void Generate(void* buffer, std::size_t size) - { - const int ret = mbedtls_hmac_drbg_random(&m_context, static_cast<u8*>(buffer), size); - ASSERT(ret == 0); - } - - mbedtls_hmac_drbg_context m_context; -}; - -PRNG::PRNG(void* seed, std::size_t size) : m_impl(std::make_unique<Impl>(seed, size)) -{ -} - -PRNG::~PRNG() = default; - -void PRNG::Generate(void* buffer, std::size_t size) -{ - m_impl->Generate(buffer, size); -} - class EntropySeededPRNG final { public: diff --git a/Source/Core/Common/Random.h b/Source/Core/Common/Random.h index f8c0c2a7b5..86192f840f 100644 --- a/Source/Core/Common/Random.h +++ b/Source/Core/Common/Random.h @@ -11,30 +11,6 @@ namespace Common::Random { -/// Cryptographically secure pseudo-random number generator, with explicit seed. -class PRNG final -{ -public: - explicit PRNG(u64 seed) : PRNG(&seed, sizeof(u64)) {} - PRNG(void* seed, std::size_t size); - ~PRNG(); - - void Generate(void* buffer, std::size_t size); - - template <typename T> - T GenerateValue() - { - static_assert(std::is_arithmetic<T>(), "T must be an arithmetic type in GenerateValue."); - T value; - Generate(&value, sizeof(value)); - return value; - } - -private: - struct Impl; - std::unique_ptr<Impl> m_impl; -}; - /// Fill `buffer` with random bytes using a cryptographically secure pseudo-random number generator. void Generate(void* buffer, std::size_t size); |
