1 files changed, 24 insertions, 0 deletions
diff --git a/crypto/src/crypto/IDigestFactory.cs b/crypto/src/crypto/IDigestFactory.cs
new file mode 100644
index 000000000..b37bab90e
--- /dev/null
+++ b/crypto/src/crypto/IDigestFactory.cs
@@ -0,0 +1,24 @@
+namespace Org.BouncyCastle.Crypto
+{
+ /// <summary>
+ /// Base interface for operator factories that create stream-based digest calculators.
+ /// </summary>
+ /// <typeparam name="A">The algorithm details/parameter type for the digest factory.</typeparam>
+ public interface IDigestFactory<out A>
+ {
+ /// <summary>The algorithm details object for calculators made by this factory.</summary>
+ A AlgorithmDetails { get ; }
+
+ /// <summary>Return the size of the digest associated with this factory.</summary>
+ /// <returns>The length of the digest produced by this calculators from this factory in bytes.</returns>
+ int DigestLength { get; }
+
+ /// <summary>
+ /// Create a stream calculator for the digest associated with this factory. The stream
+ /// calculator is used for the actual operation of entering the data to be digested
+ /// and producing the digest block.
+ /// </summary>
+ /// <returns>A calculator producing an IBlockResult with the final digest in it.</returns>
+ IStreamCalculator<IBlockResult> CreateCalculator();
+ }
+}
|