public void CreateSignedSubFile()
        {
            // Tests whether a stream within a signed stream behaves as an outer stream
            StrongNameKey snkIn = StrongNameKey.LoadFrom(SnkFile);

            string file;

            using (FileStream f = File.Create(file = TmpPath))
                using (AssuredStream s = new AssuredStream(f, snkIn, "TestPackage"))
                    using (AssuredSubStream s2 = new AssuredSubStream(s, VerificationMode.Full))
                        using (BinaryWriter bw = new BinaryWriter(s2))
                        {
                            Assert.That(s2.Position, Is.EqualTo(0L), "Position 0 within signed file");
                            bw.Write("Test String");

                            Assert.That(s2.Position, Is.Not.EqualTo(0L), "Position 0 within signed file");
                        }

            using (FileStream f = File.OpenRead(file))
                using (AssuredStream s = new AssuredStream(f, VerificationMode.Full))
                    using (AssuredSubStream s2 = new AssuredSubStream(s, VerificationMode.Full))
                        using (BinaryReader br = new BinaryReader(s2))
                        {
                            Assert.That(s2.Position, Is.EqualTo(0L), "Position 0 within signed file");
                            Assert.That(br.ReadString(), Is.EqualTo("Test String"));

                            Assert.That(s2.Position, Is.Not.EqualTo(0L), "Position not 0 within signed file");

                            Assert.That(s.HashString, Is.Not.Null, "Hash is set");
                        }
        }
        public void CreateHashedSubFile()
        {
            string file;

            using (FileStream f = File.Create(file = TmpPath))
                using (AssuredSubStream s2 = new AssuredSubStream(f, VerificationMode.Full))
                    using (BinaryWriter bw = new BinaryWriter(s2))
                    {
                        Assert.That(s2.Position, Is.EqualTo(0L), "Position 0 within signed file");
                        bw.Write("Test String");

                        Assert.That(s2.Position, Is.Not.EqualTo(0L), "Position 0 within signed file");
                    }

            using (FileStream f = File.OpenRead(file))
                using (AssuredSubStream s2 = new AssuredSubStream(f, VerificationMode.Full))
                    using (BinaryReader br = new BinaryReader(s2))
                    {
                        Assert.That(s2.Position, Is.EqualTo(0L), "Position 0 within signed file");
                        Assert.That(br.ReadString(), Is.EqualTo("Test String"));

                        Assert.That(s2.Position, Is.Not.EqualTo(0L), "Position not 0 within signed file");
                    }
        }