Exemplo n.º 1
0
        public static byte[] Encrypt(byte[] buffer, ICryptoTransform encryptor)
        {
            buffer.ThrowIfNull("buffer");
            encryptor.ThrowIfNull("encryptor");

            var originalSize = buffer.Length;
            var stream = new MemoryStream(BitConverter.GetBytes(originalSize).Concat(buffer).ToArray());

            // Encrypt the compressed memory stream into the encrypted memory stream.
            MemoryStream encrypted = new MemoryStream();
            using (var cryptor = new CryptoStream(encrypted, encryptor, CryptoStreamMode.Write))
            {
                // Write the stream to the encrypted memory stream.
                cryptor.Write(stream.ToArray(), 0, (int)stream.Length);
                cryptor.FlushFinalBlock();
            }

            return encrypted.ToArray();
        }
Exemplo n.º 2
0
        public static byte[] Encrypt(byte[] buffer, ICryptoTransform encryptor)
        {
            buffer.ThrowIfNull("buffer");
            encryptor.ThrowIfNull("encryptor");

            var originalSize = buffer.Length;
            var stream       = new MemoryStream(BitConverter.GetBytes(originalSize).Concat(buffer).ToArray());

            // Encrypt the compressed memory stream into the encrypted memory stream.
            var encrypted = new MemoryStream();

            using (var cryptor = new CryptoStream(encrypted, encryptor, CryptoStreamMode.Write))
            {
                // Write the stream to the encrypted memory stream.
                cryptor.Write(stream.ToArray(), 0, (int)stream.Length);
                cryptor.FlushFinalBlock();
            }

            return(encrypted.ToArray());
        }
Exemplo n.º 3
0
        public static byte[] Decrypt(byte[] buffer, ICryptoTransform decryptor)
        {
            buffer.ThrowIfNull("buffer");
            decryptor.ThrowIfNull("decryptor");

            // Create the array that holds the result.
            byte[] decrypted = new byte[buffer.Length];
            // Create the crypto stream that is used for decrypt. The first argument holds the input as memory stream.
            using (var cryptor = new CryptoStream(new MemoryStream(buffer), decryptor, CryptoStreamMode.Read))
            {
                // Read the encrypted values into the decrypted stream. Decrypts the content.
                cryptor.Read(decrypted, 0, decrypted.Length);
            }
            buffer = decrypted;

            int originalSize = BitConverter.ToInt32(buffer.Take(4).ToArray(), 0);
            buffer = buffer.Skip(4).Take(originalSize).ToArray();

            return buffer;
        }
Exemplo n.º 4
0
        public static byte[] Decrypt(byte[] buffer, ICryptoTransform decryptor)
        {
            buffer.ThrowIfNull("buffer");
            decryptor.ThrowIfNull("decryptor");

            // Create the array that holds the result.
            var decrypted = new byte[buffer.Length];

            // Create the crypto stream that is used for decrypt. The first argument holds the input as memory stream.
            using (var cryptor = new CryptoStream(new MemoryStream(buffer), decryptor, CryptoStreamMode.Read))
            {
                // Read the encrypted values into the decrypted stream. Decrypts the content.
                cryptor.Read(decrypted, 0, decrypted.Length);
            }
            buffer = decrypted;

            int originalSize = BitConverter.ToInt32(buffer.Take(4).ToArray(), 0);

            buffer = buffer.Skip(4).Take(originalSize).ToArray();

            return(buffer);
        }