/// <summary> /// Reset the CTRPrng instance /// </summary> public void Reset() { if (m_rngEngine != null) { m_rngEngine.Dispose(); m_rngEngine = null; } if (m_seedGenerator != null) { m_seedGenerator.Dispose(); m_seedGenerator = null; } if (m_rngGenerator != null) { m_rngGenerator.Dispose(); m_rngGenerator = null; } m_rngEngine = GetCipher(m_engineType); m_seedGenerator = GetSeedGenerator(m_seedType); m_rngGenerator = new CMG(m_rngEngine, true); if (m_seedGenerator != null) { m_rngGenerator.Initialize(m_seedGenerator.GetBytes(m_rngEngine.BlockSize + m_keySize)); } else { m_rngGenerator.Initialize(m_stateSeed); } m_rngGenerator.Generate(m_byteBuffer); m_bufferIndex = 0; }
/// <summary> /// Reinitialize the internal state /// </summary> public void Reset() { if (m_rndGenerator != null) { m_rndGenerator.Dispose(); m_rndGenerator = null; } int rds = m_stateSeed.Length == 48 ? 14 : 22; RHX eng = new RHX(16, rds); m_rndGenerator = new CMG(eng); m_rndGenerator.Initialize(m_stateSeed); }