public void Pool_SameEntropyIsSameDigest() { var p1 = new EntropyPool(); var p2 = new EntropyPool(); p1.Add(EventFromBytes(_Zero8Bytes)); p2.Add(EventFromBytes(_Zero8Bytes)); CollectionAssert.AreEqual(p1.GetDigest(), p2.GetDigest()); p1.Add(EventFromBytes(_Incrementing16Bytes)); p2.Add(EventFromBytes(_Incrementing16Bytes)); CollectionAssert.AreEqual(p1.GetDigest(), p2.GetDigest()); }
public void Pool_OneEventDigestIsNonZero() { var p = new EntropyPool(); p.Add(EventFromBytes(_Zero8Bytes)); Assert.IsFalse(p.GetDigest().All(b => b == 0)); }
public void Pool_NoEntropyIsSameDigest() { var p1 = new EntropyPool(); var p2 = new EntropyPool(); CollectionAssert.AreEqual(p1.GetDigest(), p2.GetDigest()); }
public void Pool_CanUseIncrementalHash() { var p = new EntropyPool(IncrementalHash.CreateHash(HashAlgorithmName.SHA256)); p.Add(EventFromBytes(_Zero8Bytes)); Assert.IsFalse(p.GetDigest().All(b => b == 0)); }
public void Pool_CanUseDifferentHashAlgorithm() { var p = new EntropyPool(new SHA256Managed()); p.Add(EventFromBytes(_Zero8Bytes)); Assert.IsFalse(p.GetDigest().All(b => b == 0)); }
public void Pool_CountersResetAfterDigest() { var p = new EntropyPool(); p.Add(EventFromBytes(_Zero8Bytes)); Assert.AreEqual(p.TotalEntropyBytes, 8); Assert.AreEqual(p.EntropyBytesSinceLastDigest, 8); p.GetDigest(); Assert.AreEqual(p.TotalEntropyBytes, 8); Assert.AreEqual(p.EntropyBytesSinceLastDigest, 0); p.Add(EventFromBytes(_Zero16Bytes)); Assert.AreEqual(p.TotalEntropyBytes, 24); Assert.AreEqual(p.EntropyBytesSinceLastDigest, 16); p.GetDigest(); Assert.AreEqual(p.TotalEntropyBytes, 24); Assert.AreEqual(p.EntropyBytesSinceLastDigest, 0); }
//[TestMethod] public void Pool_CanUseNonShaBasedAlgorithm() { var blake2b = System.Data.HashFunction.Blake2.Blake2BFactory.Instance.Create(); Assert.Fail("TODO: must change the EntropyPool to accept an object which we can plug various hash implementations into."); var p = new EntropyPool(new SHA256Managed()); p.Add(EventFromBytes(_Zero8Bytes)); Assert.IsFalse(p.GetDigest().All(b => b == 0)); }
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); }