1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
// Tags: JDK1.2
// Copyright (C) 2002 Free Software Foundation, Inc.
// Written by Mark Wielaard (mark@klomp.org)
// Based on a test by Archie Cobbs (archie@dellroad.org)
// This file is part of Mauve.
// Mauve is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2, or (at your option)
// any later version.
// Mauve 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 General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with Mauve; see the file COPYING. If not, write to
// the Free Software Foundation, 59 Temple Place - Suite 330,
// Boston, MA 02111-1307, USA. */
package gnu.testlet.java.security.DigestInputStream;
import java.io.*;
import java.security.*;
import gnu.testlet.*;
public class readMD5 implements Testlet
{
// echo -n "foobar" | md5sum
private static String md5 = "3858f62230ac3c915f300c664312c63f";
public void test (TestHarness harness)
{
try
{
byte[] foobar = "foobar".getBytes("UTF-8");
ByteArrayInputStream bais = new ByteArrayInputStream(foobar);
MessageDigest md5Digest = MessageDigest.getInstance("MD5");
DigestInputStream dis = new DigestInputStream(bais, md5Digest);
byte[] buf = new byte[100];
while (dis.read(buf, 0, buf.length) != -1);
byte[] hash = dis.getMessageDigest().digest();
StringBuffer result = new StringBuffer();
for (int i = 0; i < hash.length; i++)
{
result.append(Integer.toHexString((hash[i] >> 4) & 0xf));
result.append(Integer.toHexString(hash[i] & 0xf));
}
harness.check(result.toString(), md5);
}
catch (Throwable t)
{
harness.debug(t);
harness.check(false, t.toString());
}
}
}
|