예제 #1
0
        public void Challenge8_DetectAesEcb()
        {
            var lines   = Utils.GetResourceHexLines("DetectAesEcb.txt");
            var ecbLine = lines.Single(line => EcbCbcDetectionOracle.IsEcb(line, 16));

            var ecbHex = Utils.ByteArrayToHex(ecbLine);

            const string expectedHex = "D880619740A8A19B7840A8A31C810A3D08649AF70DC06F4FD5D2D69C744CD283E2DD052F6B641DBF9D11B0348542BB5708649AF70DC06F4FD5D2D69C744CD2839475C9DFDBC1D46597949D9C7E82BF5A08649AF70DC06F4FD5D2D69C744CD28397A93EAB8D6AECD566489154789A6B0308649AF70DC06F4FD5D2D69C744CD283D403180C98C8F6DB1F2A3F9C4040DEB0AB51B29933F2C123C58386B06FBA186A";

            Assert.AreEqual(expectedHex, ecbHex);
        }
예제 #2
0
        public void Challenge11_EcbCbcDetectionOracle()
        {
            var oracle = new EcbCbcDetectionOracle();

            for (int i = 0; i < 20; i++)
            {
                bool isEcb;
                var  ct = oracle.Encrypt("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", out isEcb);
                Assert.AreEqual(isEcb, EcbCbcDetectionOracle.IsEcb(ct, 16));
            }
        }
예제 #3
0
        public void Challenge11_EcbCbcDetectionOracle()
        {
            var oracle = new EcbCbcDetectionOracle();

            for (int i = 0; i < 20; i++)
            {
                bool isEcb;
                var ct = oracle.Encrypt("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", out isEcb);
                Assert.AreEqual(isEcb, EcbCbcDetectionOracle.IsEcb(ct, 16));
            }
        }