diff --git a/X10D/StreamExtensions.cs b/X10D/StreamExtensions.cs
new file mode 100644
index 0000000..5576aca
--- /dev/null
+++ b/X10D/StreamExtensions.cs
@@ -0,0 +1,30 @@
+namespace X10D
+{
+ #region Using Directives
+
+ using System;
+ using System.IO;
+ using System.Reflection;
+ using System.Security.Cryptography;
+
+ #endregion
+
+ ///
+ /// A set of extension methods for .
+ ///
+ public static class StreamExtensions
+ {
+ ///
+ /// Returns the hash of a stream using the specified hashing algorithm.
+ ///
+ /// A derived type.
+ /// The stream whose hash is to be computed.
+ /// Returns a array representing the hash of the stream.
+ public static byte[] GetHash(this Stream stream) where T : HashAlgorithm
+ {
+ MethodInfo create = typeof(T).GetMethod("Create", new Type[] { });
+ using T crypt = (T)create?.Invoke(null, null);
+ return crypt?.ComputeHash(stream);
+ }
+ }
+}
diff --git a/X10D/X10D.csproj b/X10D/X10D.csproj
index 67c97df..841cc56 100644
--- a/X10D/X10D.csproj
+++ b/X10D/X10D.csproj
@@ -58,6 +58,7 @@
+