Report almost done.
[crypto_lab2.git] / labo2-fsharp / CryptoFile / Crypto.fs
index 21b168e..24cebd0 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
@@ -79,4 +79,9 @@ module internal Crypto =
     let HMACStream (key: byte[]) (outputStream: Stream) : Stream * HMACSHA256 = 
         assert (key.Length = 32)
         let hmac = new HMACSHA256 (key)
-        new CryptoStream (outputStream, hmac, CryptoStreamMode.Write) :> Stream, hmac
\ No newline at end of file
+        new CryptoStream (outputStream, hmac, CryptoStreamMode.Write) :> Stream, hmac
+
+    let ComputeHMAC (key: byte[]) (inputStream: Stream) : byte[] =
+        assert (key.Length = 32)
+        let hmac = new HMACSHA256 (key)
+        hmac.ComputeHash inputStream
\ No newline at end of file