Example #1
0
        public void TestMD5Managed()
        {

            System.Security.Cryptography.MD5 md5;
            try
            {
                md5 = System.Security.Cryptography.MD5.Create();
            }
            catch
            {
                Console.WriteLine("FIPS enabled, exiting test");
                return;
            }

            var md5m = new ThirdParty.MD5.MD5Managed();

            Assert.AreEqual(md5.CanReuseTransform, md5m.CanReuseTransform);
            Assert.AreEqual(md5.CanTransformMultipleBlocks, md5m.CanTransformMultipleBlocks);
            Assert.AreEqual(md5.HashSize, md5m.HashSize);
            Assert.AreEqual(md5.InputBlockSize, md5m.InputBlockSize);
            Assert.AreEqual(md5.OutputBlockSize, md5m.OutputBlockSize);

            var data1 = "foo";
            var data2 = "bar";
            var bytes1 = Encoding.UTF8.GetBytes(data1);
            var bytes2 = Encoding.UTF8.GetBytes(data2);

            //CollectionAssert.AreEqual(md5.Hash, md5m.Hash);
            CollectionAssert.AreEqual(md5.ComputeHash(bytes1), md5m.ComputeHash(bytes1));

            HashMultiple(md5, bytes1, bytes2);
            HashMultiple(md5m, bytes1, bytes2);
            CollectionAssert.AreEqual(md5.Hash, md5m.Hash);

            //HashMultiple(md5, bytes1, bytes2);
            //HashMultiple(md5m, bytes1, bytes2);
            //CollectionAssert.AreEqual(md5.Hash, md5m.Hash);

            md5.Initialize();
            md5m.Initialize();

            Assert.AreEqual(data1, Encoding.UTF8.GetString(bytes1));
            Assert.AreEqual(data2, Encoding.UTF8.GetString(bytes2));


            md5.Clear();
            md5m.Clear();

            Utils.AssertExceptionExpected<ObjectDisposedException>(() => HashMultiple(md5, bytes1, bytes2));
            Utils.AssertExceptionExpected<ObjectDisposedException>(() => HashMultiple(md5m, bytes1, bytes2));
        }
Example #2
0
        public void TestMD5Managed()
        {
            System.Security.Cryptography.MD5 md5;
            try
            {
                md5 = System.Security.Cryptography.MD5.Create();
            }
            catch
            {
                Console.WriteLine("FIPS enabled, exiting test");
                return;
            }

            var md5m = new ThirdParty.MD5.MD5Managed();

            Assert.AreEqual(md5.CanReuseTransform, md5m.CanReuseTransform);
            Assert.AreEqual(md5.CanTransformMultipleBlocks, md5m.CanTransformMultipleBlocks);
            Assert.AreEqual(md5.HashSize, md5m.HashSize);
            Assert.AreEqual(md5.InputBlockSize, md5m.InputBlockSize);
            Assert.AreEqual(md5.OutputBlockSize, md5m.OutputBlockSize);

            var data1  = "foo";
            var data2  = "bar";
            var bytes1 = Encoding.UTF8.GetBytes(data1);
            var bytes2 = Encoding.UTF8.GetBytes(data2);

            //CollectionAssert.AreEqual(md5.Hash, md5m.Hash);
            CollectionAssert.AreEqual(md5.ComputeHash(bytes1), md5m.ComputeHash(bytes1));

            HashMultiple(md5, bytes1, bytes2);
            HashMultiple(md5m, bytes1, bytes2);
            CollectionAssert.AreEqual(md5.Hash, md5m.Hash);

            //HashMultiple(md5, bytes1, bytes2);
            //HashMultiple(md5m, bytes1, bytes2);
            //CollectionAssert.AreEqual(md5.Hash, md5m.Hash);

            md5.Initialize();
            md5m.Initialize();

            Assert.AreEqual(data1, Encoding.UTF8.GetString(bytes1));
            Assert.AreEqual(data2, Encoding.UTF8.GetString(bytes2));


            md5.Clear();
            md5m.Clear();

            Utils.AssertExceptionExpected <ObjectDisposedException>(() => HashMultiple(md5, bytes1, bytes2));
            Utils.AssertExceptionExpected <ObjectDisposedException>(() => HashMultiple(md5m, bytes1, bytes2));
        }