コード例 #1
0
        public void XorColumn_ShouldPerformBitwiseXorWithBits()
        {
            var state  = new SpongeState(new BitString("10101010101010101010101010101010101010101010101010"), 25);
            var column = state.GetColumn(0, 0);
            var bits   = new[] { true, true, true, true, true };

            state.XorColumn(column, bits);
            Assert.AreEqual("00101010100010101010001010101000101010100010101010", state.ToBinString());
        }
コード例 #2
0
        public void SetColumn_ShouldSetColumnBits()
        {
            var state  = new SpongeState(new BitString("10101010101010101010101010101010101010101010101010"), 25);
            var column = state.GetColumn(0, 0);

            state.SetColumn(column, new[] { false, false, false, false, false });

            for (var y = 0; y < 5; y++)
            {
                Assert.IsTrue(column.GetBits().All((b) => !b));
            }
        }
コード例 #3
0
        public void GetColumn_ShouldReturnExpectedColumn()
        {
            var state = new SpongeState(new BitString("10101010101010101010101010101010101010101010101010"), 25);

            for (var x = 0; x < 5; x++)
            {
                for (var z = 0; z < 2; z++)
                {
                    var column = state.GetColumn(x, z);
                    foreach (var bit in column.GetBits())
                    {
                        if ((z & 1) == 0)
                        {
                            Assert.IsTrue(bit);
                        }
                        else

                        {
                            Assert.IsFalse(bit);
                        }
                    }
                }
            }
        }