+ new CryptoStream (inputStream, decryptor, CryptoStreamMode.Read)
+
+ 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
+
+ (*type HMACStream (buffer: byte[], output: Stream) =
+ inherit Stream ()
+ override this.CanRead with get () = false
+ override this.CanSeek with get () = false
+ override this.CanWrite with get () = true
+ override this.Length with get () = raise <| new NotSupportedException ()
+ override this.Position with get () = raise <| new NotSupportedException ()
+ and set _ = raise <| new NotSupportedException ()
+ override this.Flush () =
+ output.Flush ()
+ override this.Read (_: byte[], _: int, _: int) = raise <| new NotSupportedException ()*)
\ No newline at end of file