com.twmacinta.util
Class MD5InputStream

java.lang.Object
  extended by java.io.InputStream
      extended by java.io.FilterInputStream
          extended by com.twmacinta.util.MD5InputStream
All Implemented Interfaces:
java.io.Closeable

public class MD5InputStream
extends java.io.FilterInputStream

MD5InputStream, a subclass of FilterInputStream implementing MD5 functionality on a stream.

Originally written by Santeri Paavolainen, Helsinki Finland 1996
(c) Santeri Paavolainen, Helsinki Finland 1996
Some changes Copyright (c) 2002 Timothy W Macinta

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details.

You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

See http://www.twmacinta.com/myjava/fast_md5.php for more information on this file.

Please note: I (Timothy Macinta) have put this code in the com.twmacinta.util package only because it came without a package. I was not the the original author of the code, although I did optimize it (substantially) and fix some bugs.

Author:
Santeri Paavolainen , Timothy W Macinta (twm@alum.mit.edu) (added main() method)

Field Summary
 
Fields inherited from class java.io.FilterInputStream
in
 
Constructor Summary
MD5InputStream(java.io.InputStream in)
          Creates a MD5InputStream
 
Method Summary
 MD5 getMD5()
           
 byte[] hash()
          Returns array of bytes representing hash of the stream as finalized for the current state.
static void main(java.lang.String[] arg)
          This method is here for testing purposes only - do not rely on it being here.
 int read()
          Read a byte of data.
 int read(byte[] bytes, int offset, int length)
          Reads into an array of bytes.
 
Methods inherited from class java.io.FilterInputStream
available, close, mark, markSupported, read, reset, skip
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MD5InputStream

public MD5InputStream(java.io.InputStream in)
Creates a MD5InputStream

Parameters:
in - The input stream
Method Detail

read

public int read()
         throws java.io.IOException
Read a byte of data.

Overrides:
read in class java.io.FilterInputStream
Throws:
java.io.IOException
See Also:
FilterInputStream

read

public int read(byte[] bytes,
                int offset,
                int length)
         throws java.io.IOException
Reads into an array of bytes.

Overrides:
read in class java.io.FilterInputStream
Throws:
java.io.IOException
See Also:
FilterInputStream

hash

public byte[] hash()
Returns array of bytes representing hash of the stream as finalized for the current state.

See Also:
MD5.Final()

getMD5

public MD5 getMD5()

main

public static void main(java.lang.String[] arg)
This method is here for testing purposes only - do not rely on it being here.