Пример #1
0
        public void SHA512PaddingStandardShouldReturnSingleBlock()
        {
            var data            = new byte[] { 1, 2, 3 };
            var paddingStandard = new SHA512PaddingStandard();
            var result          = paddingStandard.GetAlignedBlocks(data, 16, 1).ToArray();

            result.Length.Should().Be(1);
            var block = result.Single();

            block.Should().BeEquivalentTo(new byte[] { 1, 2, 3, 128 }
                                          .Concat(Enumerable.Repeat((byte)0, 11))
                                          .Concat(new byte[] { 19 * 8 })
                                          .ToArray(),
                                          options => options.WithStrictOrdering());
        }
Пример #2
0
        public void SHA512PaddingStandardShouldReturnTwoBlocks()
        {
            var data            = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };
            var paddingStandard = new SHA512PaddingStandard();

            var result = paddingStandard
                         .GetAlignedBlocks(data, 16, 0)
                         .ToArray();

            result.Length.Should().Be(2);
            var firstBlock  = result.First();
            var secondBlock = result.Last();

            firstBlock.Should().BeEquivalentTo(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 128 }
                                               .Concat(Enumerable.Repeat((byte)0, 7))
                                               .ToArray(),
                                               options => options.WithStrictOrdering());
            secondBlock.Should().BeEquivalentTo(Enumerable.Repeat((byte)0, 15)
                                                .Concat(new byte[] { 8 * 8 })
                                                .ToArray(),
                                                options => options.WithStrictOrdering());
        }