Exemple #1
0
        /// <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);
            }
        }
Exemple #2
0
 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);
     }
 }
Exemple #3
0
 private ISeed GetSeedGenerator(SeedGenerators SeedType)
 {
     try
     {
         return(SeedGeneratorFromName.GetInstance(SeedType));
     }
     catch
     {
         throw new CryptoRandomException("DGCPrng:GetSeedGenerator", "The seed generator is not recognized!", new ArgumentException());
     }
 }