X-Git-Url: http://git.euphorik.ch/?a=blobdiff_plain;f=labo2-fsharp%2FCryptoFile%2FCrypto.fs;h=24cebd0bcf4acee9c8c4071cafa690594070b11f;hb=19a9446e4042d5e451f1ae0534ffba242d33879e;hp=21b168ec302c60f98ee154ee7497a9e68b9a4435;hpb=ac84e8535149dbf639a7766f110960c998b47159;p=crypto_lab2.git diff --git a/labo2-fsharp/CryptoFile/Crypto.fs b/labo2-fsharp/CryptoFile/Crypto.fs index 21b168e..24cebd0 100644 --- a/labo2-fsharp/CryptoFile/Crypto.fs +++ b/labo2-fsharp/CryptoFile/Crypto.fs @@ -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