let encryptAES (key: byte[]) (iv: byte[]) (outputStream: Stream) : CryptoStream =
if key.Length <> aesKeySize / 8 then raise KeySizeError
if iv.Length <> 16 then raise IVSizeError
use aes = new AesCryptoServiceProvider (KeySize = aesKeySize) // Default mode is CBC.
new CryptoStream (outputStream, aes.CreateEncryptor (key, iv), CryptoStreamMode.Write)
let encryptAES (key: byte[]) (iv: byte[]) (outputStream: Stream) : CryptoStream =
if key.Length <> aesKeySize / 8 then raise KeySizeError
if iv.Length <> 16 then raise IVSizeError
use aes = new AesCryptoServiceProvider (KeySize = aesKeySize) // Default mode is CBC.
new CryptoStream (outputStream, aes.CreateEncryptor (key, iv), CryptoStreamMode.Write)