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(); }
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()); }
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; }
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); }