AES_KEY m_Context;
byte_t m_ctr_buf[RNG_BLOCK_SIZE];
Mutex m_Lock;
+ unsigned int m_cth_test_rng_state;
h__RNG()
{
} // end AutoMutex context
set_key(rng_key);
+ reset();
}
//
AES_encrypt(m_ctr_buf, tmp, &m_Context);
memcpy(buf + gen_count, tmp, len - gen_count);
}
+
+ if (cth_test)
+ {
+#ifdef __unix__
+ for (unsigned int i = 0; i < len; ++i)
+ buf[i] = rand_r(&m_cth_test_rng_state);
+#endif
+ }
}
+
+ void reset()
+ {
+ m_cth_test_rng_state = 1;
+ }
};
return Buffer.Data();
}
+void
+Kumu::FortunaRNG::Reset()
+{
+ s_RNG->reset();
+}
+
//------------------------------------------------------------------------------------------
//