/// <summary> /// Reset the seed <see cref="VTDev.Libraries.CEXEngine.Crypto.Enumeration.SeedGenerators">Seed Generator</see> and the <see cref="VTDev.Libraries.CEXEngine.Crypto.Enumeration.Digests">Digest</see> engines /// </summary> public void Reset() { if (m_seedEngine != null) { m_seedEngine.Dispose(); m_seedEngine = null; } m_seedEngine = SeedGeneratorFromName.GetInstance(SeedEngine); // reset hash engine if (m_hashEngine != null) { m_hashEngine.Dispose(); m_hashEngine = null; } m_hashEngine = DigestFromName.GetInstance(HashEngine); // if absent, generate the initial counter if (m_ctrLength == 0) { if (m_hashEngine.BlockSize < 72) { m_ctrLength = CTRDEF_SIZE; } else { m_ctrLength = CTRMAX_SIZE; } m_ctrVector = new byte[m_ctrLength]; using (CSPRsg pool = new CSPRsg()) m_ctrVector = pool.GetBytes(m_ctrLength); } }
private ISeed GetSeedGenerator(SeedGenerators SeedEngine) { try { return(SeedGeneratorFromName.GetInstance(SeedEngine)); } catch (Exception Ex) { throw new CryptoRandomException("CTRPrng:GetSeedGenerator", "The seed generator could not be initialized!", Ex); } }
private ISeed GetSeedGenerator(SeedGenerators SeedType) { try { return(SeedGeneratorFromName.GetInstance(SeedType)); } catch { throw new CryptoRandomException("DGCPrng:GetSeedGenerator", "The seed generator is not recognized!", new ArgumentException()); } }