コード例 #1
0
ファイル: AccumulatorTests.cs プロジェクト: ligos/terninger
        public void Pool_GetDigestResetsCountsBySource()
        {
            var p   = new EntropyPool();
            var evt = EventFromBytes(_Zero16Bytes);

            p.Add(evt);
            Assert.AreEqual(p.GetCountOfBytesBySource().Count, 1);
            var digest = p.GetDigest();

            Assert.AreEqual(p.GetCountOfBytesBySource().Count, 0);
        }
コード例 #2
0
        public void Pool_List3InterleavedSources()
        {
            var p  = new EntropyPool();
            var s1 = new NullSource();
            var s2 = new NullSource();
            var s3 = new NullSource();
            var e1 = new EntropyEvent(_Zero16Bytes, s1);
            var e2 = new EntropyEvent(_Zero16Bytes, s2);
            var e3 = new EntropyEvent(_Zero16Bytes, s3);

            using (var sw = new StreamWriter("pool_3interleaved.txt", false, Encoding.UTF8))
            {
                sw.WriteLine($"Total: Source 1 : Source 2 : Source 3");
                for (int i = 0; i < 10000; i++)
                {
                    if (i % 3 == 0)
                    {
                        p.Add(e1);
                    }
                    else if (i % 3 == 1)
                    {
                        p.Add(e2);
                    }
                    else
                    {
                        p.Add(e3);
                    }
                    var counts = p.GetCountOfBytesBySource();
                    if (counts.Count == 3)
                    {
                        sw.WriteLine($"{p.EntropyBytesSinceLastDigest} :{counts[s1]:N0} :{counts[s2]:N0} :{counts[s3]:N0}");
                    }
                }
            }
        }