/* This code is part of Freenet. It is distributed under the GNU General * Public License, version 2 (or at your option any later version). See * http://www.gnu.org/ for further details of the GPL. */ package freenet.crypt; import java.security.MessageDigest; import org.bitpedia.collider.core.Ed2Handler; /** ** Implementation of {@link MessageDigest} backed by a {@link Ed2Handler}. ** ** @author infinity0 ** @author toad */ public class Ed2MessageDigest extends MessageDigest { final protected Ed2Handler handler; public Ed2MessageDigest() { super("ED2K"); handler = new Ed2Handler(); handler.analyzeInit(); } @Override protected byte[] engineDigest() { return handler.analyzeFinal(); } @Override protected void engineReset() { handler.analyzeInit(); } @Override protected void engineUpdate(byte arg0) { engineUpdate(new byte[] { arg0 }, 0, 1); } @Override protected void engineUpdate(byte[] arg0, int arg1, int arg2) { handler.analyzeUpdate(arg0, arg1, arg2); } @Override protected int engineGetDigestLength() { return 16; } }