public void PimixCryptoStreamDecryptionReadBasicTest()
        {
            foreach (var item in raw)
            {
                ICryptoTransform transform = aesAlgorithm.CreateDecryptor();

                using (var stream = new PimixCryptoStream(File.OpenRead(item.Item1), transform, item.Item3, true))
                {
                    var info = FileInformation.GetInformation(stream, FileProperties.SHA256 | FileProperties.Size | FileProperties.SliceMD5);
                    Assert.AreEqual(item.Item3, info.Size);
                    Assert.AreEqual(item.Item2, info.SHA256);

                    foreach (var b in new List<int> { 8, 11, 12, 16, 33, 100 })
                    {
                        stream.Seek(0, SeekOrigin.Begin);
                        var output = new MemoryStream();
                        stream.CopyTo(output, b);

                        info = FileInformation.GetInformation(output, FileProperties.SHA256 | FileProperties.Size | FileProperties.SliceMD5);
                        Assert.AreEqual(item.Item3, info.Size);
                        Assert.AreEqual(item.Item2, info.SHA256);
                    }

                }
            }
        }
        public void PimixCryptoStreamDecryptionReadIncompleteEndTest()
        {
            foreach (var item in raw)
            {
                ICryptoTransform transform = aesAlgorithm.CreateDecryptor();

                using (var stream = new PimixCryptoStream(File.OpenRead(item.Item1), transform, item.Item3, true))
                {
                    var baseStream = new MemoryStream();
                    stream.CopyTo(baseStream);

                    foreach (var b in new List<int> { 8, 11, 12, 16, 33, 100 })
                    {
                        stream.Seek(0, SeekOrigin.Begin);
                        stream.Seek(-b, SeekOrigin.End);
                        baseStream.Seek(-b, SeekOrigin.End);
                        for (int i = 0; i < b; i++)
                        {
                            Assert.AreEqual(baseStream.ReadByte(), stream.ReadByte());
                        }
                    }
                }
            }
        }