com.twmacinta.util
Class MD5OutputStream

java.lang.Object
  extended by java.io.OutputStream
      extended by java.io.FilterOutputStream
          extended by com.twmacinta.util.MD5OutputStream
All Implemented Interfaces:
java.io.Closeable, java.io.Flushable

public class MD5OutputStream
extends java.io.FilterOutputStream

MD5OutputStream is a subclass of FilterOutputStream adding MD5 hashing of the output.

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.FilterOutputStream
out
 
Constructor Summary
MD5OutputStream(java.io.OutputStream out)
          Creates MD5OutputStream
 
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.
 void write(byte[] b, int off, int len)
          Writes a sub array of bytes.
 void write(int b)
          Writes a byte.
 
Methods inherited from class java.io.FilterOutputStream
close, flush, write
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MD5OutputStream

public MD5OutputStream(java.io.OutputStream out)
Creates MD5OutputStream

Parameters:
out - The output stream
Method Detail

write

public void write(int b)
           throws java.io.IOException
Writes a byte.

Overrides:
write in class java.io.FilterOutputStream
Throws:
java.io.IOException
See Also:
FilterOutputStream

write

public void write(byte[] b,
                  int off,
                  int len)
           throws java.io.IOException
Writes a sub array of bytes.

Overrides:
write in class java.io.FilterOutputStream
Throws:
java.io.IOException
See Also:
FilterOutputStream

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.