public void TestReadHeaderUshort()
        {
            StreamTester st = CreateStreamTester(0x50, "BA AD F0 0D 00", unchecked ((int)0x96C66829));

            st.RollForward(0x0004, 0x03FF);

            Biff8DecryptingStream bds = st.GetBDS();
            int hval    = bds.ReadDataSize(); // unencrypted
            int nextInt = bds.ReadInt();

            if (nextInt == unchecked ((int)0x8F534029))
            {
                throw new AssertionException(
                          "Indentified bug in key alignment After call to ReadHeaderUshort()");
            }
            Assert.AreEqual(0x16885243, nextInt);
            if (hval == 0x283E)
            {
                throw new AssertionException("readHeaderUshort() incorrectly decrypted result");
            }
            Assert.AreEqual(0x504F, hval);

            // confirm next key change
            st.RollForward(0x0405, 0x07FC);
            st.ConfirmInt(0x76CC1223);
            st.ConfirmInt(0x4842D83E);
            st.AssertNoErrors();
        }
Esempio n. 2
0
        public void TestReadsAlignedWithBoundary()
        {
            StreamTester st = CreateStreamTester(0x50, "BA AD F0 0D 00", unchecked ((int)0x96C66829));

            st.RollForward(0x0004, 0x03FF);
            st.ConfirmByte(0x3E);
            st.ConfirmByte(0x28);
            st.RollForward(0x0401, 0x07FE);
            st.ConfirmShort(0x76CC);
            st.ConfirmShort(0xD83E);
            st.RollForward(0x0802, 0x0BFC);
            st.ConfirmInt(0x25F280EB);
            st.ConfirmInt(unchecked ((int)0xB549E99B));
            st.RollForward(0x0C04, 0x0FF8);
            st.ConfirmLong(0x6AA2D5F6B975D10CL);
            st.ConfirmLong(0x34248ADF7ED4F029L);

            // check for signed/unsigned shorts #58069
            st.RollForward(0x1008, 0x7213);
            st.ConfirmUShort(0xFFFF);
            st.RollForward(0x7215, 0x1B9AD);
            st.ConfirmShort(-1);
            st.RollForward(0x1B9AF, 0x37D99);
            Assert.AreEqual(0xFFFF, st.ReadUShort());
            st.RollForward(0x37D9B, 0x4A6F2);
            Assert.AreEqual(-1, st.ReadShort());

            st.AssertNoErrors();
        }
        public void TestReadByteArrays()
        {
            StreamTester st = CreateStreamTester(0x50, "BA AD F0 0D 00", unchecked ((int)0x96C66829));

            st.RollForward(0x0004, 0x2FFC);
            st.ConfirmData("66 A1 20 B1 04 A3 35 F5"); // 4 bytes on either side of boundary
            st.RollForward(0x3004, 0x33F8);
            st.ConfirmData("F8 97 59 36");             // last 4 bytes in block
            st.ConfirmData("01 C2 4E 55");             // first 4 bytes in next block
            st.AssertNoErrors();
        }
        public void TestReadsSpanningBoundary()
        {
            StreamTester st = CreateStreamTester(0x50, "BA AD F0 0D 00", unchecked ((int)0x96C66829));

            st.RollForward(0x0004, 0x03FC);
            st.ConfirmLong(unchecked ((long)0x885243283E2A5EEFL));
            st.RollForward(0x0404, 0x07FE);
            st.ConfirmInt(unchecked ((int)0xD83E76CC));
            st.RollForward(0x0802, 0x0BFF);
            st.Confirmshort(0x9B25);
            st.AssertNoErrors();
        }
        public void TestReadsAlignedWithBoundary()
        {
            StreamTester st = CreateStreamTester(0x50, "BA AD F0 0D 00", unchecked ((int)0x96C66829));

            st.RollForward(0x0004, 0x03FF);
            st.ConfirmByte(0x3E);
            st.ConfirmByte(0x28);
            st.RollForward(0x0401, 0x07FE);
            st.Confirmshort(0x76CC);
            st.Confirmshort(0xD83E);
            st.RollForward(0x0802, 0x0BFC);
            st.ConfirmInt(0x25F280EB);
            st.ConfirmInt(unchecked ((int)0xB549E99B));
            st.RollForward(0x0C04, 0x0FF8);
            st.ConfirmLong(0x6AA2D5F6B975D10CL);
            st.ConfirmLong(0x34248ADF7ED4F029L);
            st.AssertNoErrors();
        }