Ejemplo n.º 1
0
        public override void Serialize(BEWriter writer)
        {
            var messageWriter = new BEWriter();

            base.Serialize(messageWriter);

            var message = messageWriter.ToArray();

            var initVectorSource = message.Take(16).ToArray();
            var initVector       = Crypto.CreateDerivedInitVector(initVectorSource);

            var fragmentWriter = new BEWriter();

            fragmentWriter.WriteWithPaddingAlignment(
                Fragment,
                payloadSizeAlignment);

            var encryptedFragment = Crypto.EncryptWithoutPadding(fragmentWriter.ToArray(), initVector);

            Header.Serialize(writer);
            writer.Write(encryptedFragment);

            var signature = Crypto.CalculateMessageSignature(writer.ToArray());

            writer.Write(signature);
        }
Ejemplo n.º 2
0
        public byte[] Encrypt(byte[] data)
        {
            var writer = new BEWriter();

            writer.WriteWithPaddingAlignment(data, 16);

            var padded = writer.ToArray();

            var output = new byte[padded.Length];

            for (var i = 0; i < padded.Length; i += 16)
            {
                _clientCipher.ProcessBlock(padded, i, output, i);
            }

            return(output);
        }