From eaac013b4e68dea48fb2c3070b7c7ca59dfd1b96 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 17 Jul 2012 15:14:14 +0100 Subject: Hack asdcplib to make its RNG repeatable when we are testing. --- asdcplib/src/KM_prng.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'asdcplib/src/KM_prng.cpp') diff --git a/asdcplib/src/KM_prng.cpp b/asdcplib/src/KM_prng.cpp index 5212595f..3c64bdcc 100755 --- a/asdcplib/src/KM_prng.cpp +++ b/asdcplib/src/KM_prng.cpp @@ -48,6 +48,7 @@ using namespace Kumu; const char* DEV_URANDOM = "/dev/urandom"; #endif // KM_WIN32 +bool Kumu::libdcp_test = false; const ui32_t RNG_KEY_SIZE = 512UL; const ui32_t RNG_KEY_SIZE_BITS = 256UL; @@ -64,6 +65,7 @@ public: AES_KEY m_Context; byte_t m_ctr_buf[RNG_BLOCK_SIZE]; Mutex m_Lock; + unsigned int m_libdcp_test_rng_state; h__RNG() { @@ -97,6 +99,8 @@ public: } // end AutoMutex context set_key(rng_key); + + m_libdcp_test_rng_state = 1; } // @@ -138,6 +142,12 @@ public: AES_encrypt(m_ctr_buf, tmp, &m_Context); memcpy(buf + gen_count, tmp, len - gen_count); } + + if (libdcp_test) + { + for (unsigned int i = 0; i < len; ++i) + buf[i] = rand_r(&m_libdcp_test_rng_state); + } } }; -- cgit v1.2.3