Replace AESManager by AesCryptoServiceProvider.
[crypto_lab2.git] / labo2-fsharp / CryptoFile / Crypto.fs
index 60f9c5f..560cd13 100644 (file)
@@ -1,11 +1,11 @@
 namespace CryptoFile
 
+open System
+open System.IO
+open System.Security.Cryptography
+
 // Some cryptography primitives specific to CryptoFile.
 module internal Crypto =
-    open System
-    open System.IO
-    open System.Security.Cryptography
-
     type Data = byte[]
 
     let rsaKeySize = 2048
@@ -62,7 +62,7 @@ module internal Crypto =
     /// Returns an encrypted output stream.
     let encryptAES (key: byte[]) (iv: byte[]) (outputStream: Stream) : CryptoStream =
         assert (key.Length = 32 && iv.Length = 16)
-        use aes = new AesManaged ()
+        use aes = new AesCryptoServiceProvider () // Default mode is CBC.
         aes.KeySize <- 256
         let encryptor = aes.CreateEncryptor (key, iv)
         new CryptoStream (outputStream, encryptor, CryptoStreamMode.Write)
@@ -70,7 +70,7 @@ module internal Crypto =
     /// Returns a decrypted input stream.
     let decryptAES (key: byte[]) (iv: byte[]) (inputStream: Stream) : CryptoStream =
         assert (key.Length = 32 && iv.Length = 16)
-        use aes = new AesManaged ()
+        use aes = new AesCryptoServiceProvider ()
         aes.KeySize <- 256
         let decryptor = aes.CreateDecryptor (key, iv)
         new CryptoStream (inputStream, decryptor, CryptoStreamMode.Read)