2002/07/15 23:04:32
authormegacz <megacz@xwt.org>
Fri, 30 Jan 2004 06:48:49 +0000 (06:48 +0000)
committermegacz <megacz@xwt.org>
Fri, 30 Jan 2004 06:48:49 +0000 (06:48 +0000)
darcs-hash:20040130064849-2ba56-9e4c3bfe336fc837fef3b32879e3f6b7ab3b5fde.gz

src/org/bouncycastle/crypto/io/DigestInputStream.java [new file with mode: 0644]

diff --git a/src/org/bouncycastle/crypto/io/DigestInputStream.java b/src/org/bouncycastle/crypto/io/DigestInputStream.java
new file mode 100644 (file)
index 0000000..3567d5a
--- /dev/null
@@ -0,0 +1,50 @@
+package org.bouncycastle.crypto.io;
+
+import java.io.*;
+
+import org.bouncycastle.crypto.Digest;
+
+public class DigestInputStream
+    extends FilterInputStream
+{
+    protected Digest digest;
+
+    public DigestInputStream(
+        InputStream stream,
+        Digest      digest)
+    {
+        super(stream);
+        this.digest = digest;
+    }
+
+    public int read()
+        throws IOException
+    {
+        int b = in.read();
+
+        if (b >= 0)
+        {
+            digest.update((byte)b);
+        }
+        return b;
+    }
+
+    public int read(
+        byte[] b,
+        int off,
+        int len)
+        throws IOException
+    {
+        int n = in.read(b, off, len);
+        if (n > 0)
+        {
+            digest.update(b, off, n);
+        }
+        return n;
+    }
+
+    public Digest getDigest()
+    {
+        return digest;
+    }
+}