X-Git-Url: http://git.euphorik.ch/?p=crypto_lab2.git;a=blobdiff_plain;f=labo2-fsharp%2FCryptoFile%2FCrypto.fs;h=a7ba53ccf31c8c8c3de3484441f98c86e60ac453;hp=31d6475c1f488362244dfa52ce8bde516a030cfa;hb=a29300558755d533aff12a6fb668c7e985ca4617;hpb=0126bf5a082b8e37ad1dc5f7686802146269ae97 diff --git a/labo2-fsharp/CryptoFile/Crypto.fs b/labo2-fsharp/CryptoFile/Crypto.fs index 31d6475..a7ba53c 100644 --- a/labo2-fsharp/CryptoFile/Crypto.fs +++ b/labo2-fsharp/CryptoFile/Crypto.fs @@ -17,11 +17,11 @@ module internal Crypto = /// Returns a cryptographically strong sequence of bytes. let rand size : byte[] = let result = Array.zeroCreate size - let generator = new RNGCryptoServiceProvider () + use generator = new RNGCryptoServiceProvider () generator.GetBytes result result - /// Generate a new RSA key pair: (public * private). + /// Generates a new RSA key pair: (public * private). let generateRSAKeysPair : Key * Key = use rsa = new RSACryptoServiceProvider (rsaKeySize) rsa.ToXmlString false, rsa.ToXmlString true @@ -62,7 +62,7 @@ module internal Crypto = use aes = new AesCryptoServiceProvider (KeySize = aesKeySize) new CryptoStream (inputStream, aes.CreateDecryptor (key, iv), CryptoStreamMode.Read) - // Create a stream to compute the HMAC-SHA256 against all data being written. + // Creates a stream to compute the HMAC-SHA256 against all data being written. let HMACStream (key: byte[]) (outputStream: Stream) : Stream * HMACSHA256 = if key.Length <> 32 then raise KeySizeError let hmac = new HMACSHA256 (key) @@ -70,5 +70,5 @@ module internal Crypto = let ComputeHMAC (key: byte[]) (inputStream: Stream) : byte[] = if key.Length <> 32 then raise KeySizeError - let hmac = new HMACSHA256 (key) + use hmac = new HMACSHA256 (key) hmac.ComputeHash inputStream \ No newline at end of file