diff options
author | Rutger Ovidius <ovidr@users.sourceforge.net> | 2004-10-12 10:13:39 +0000 |
---|---|---|
committer | Andreas Tobler <andreast@gcc.gnu.org> | 2004-10-12 12:13:39 +0200 |
commit | 2abb138b7906f247d88ad1489811d2266a04de2d (patch) | |
tree | 079b5f6d184f15fefb94d0456d0e92bd03a90688 /libjava/testsuite/libjava.lang/md5test.java | |
parent | 3789b316508f81b2b12ae20b64a8a0ede9c6c86e (diff) | |
download | gcc-2abb138b7906f247d88ad1489811d2266a04de2d.zip gcc-2abb138b7906f247d88ad1489811d2266a04de2d.tar.gz gcc-2abb138b7906f247d88ad1489811d2266a04de2d.tar.bz2 |
re PR libgcj/17903 (Incorrect SHA result)
2004-10-12 Rutger Ovidius <ovidr@users.sourceforge.net>
PR libgcj/17903:
* testsuite/libjava.lang/md5test.java: New file.
* testsuite/libjava.lang/md5test.out: Likewise.
* testsuite/libjava.lang/shatest.java: Likewise.
* testsuite/libjava.lang/shatest.out: Likewise.
From-SVN: r88922
Diffstat (limited to 'libjava/testsuite/libjava.lang/md5test.java')
-rw-r--r-- | libjava/testsuite/libjava.lang/md5test.java | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/libjava/testsuite/libjava.lang/md5test.java b/libjava/testsuite/libjava.lang/md5test.java new file mode 100644 index 0000000..ffd0a93 --- /dev/null +++ b/libjava/testsuite/libjava.lang/md5test.java @@ -0,0 +1,63 @@ +import java.security.*; + +class md5test { + + + // gnu-crypto/source/gnu/testlet/gnu/crypto/hash/TestOfMD5.java + + public static void main(String[] argv) { + String[] strings = { + "a", + "abc", + "message digest", + "abcdefghijklmnopqrstuvwxyz", + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", + "12345678901234567890123456789012345678901234567890123456789012345678901234567890" + }; + + String[] expected = { + "0CC175B9C0F1B6A831C399E269772661", + "900150983CD24FB0D6963F7D28E17F72", + "F96B697D7CB7938D525A2F31AAF161D0", + "C3FCD3D76192E4007DFB496CCA67E13B", + "D174AB98D277D9F5A5611C2C9F419D9F", + "57EDF4A22BE3C955AC49DA2E2107B67A" + }; + + for (int i = 0; i < strings.length; i++) + testString(strings[i], expected[i]); + + } + + public static void testString(String string, String expected) { + + MessageDigest md=null; + try { + md = MessageDigest.getInstance("MD5"); + md.update(string.getBytes(), 0, string.length()); + String result = toString(md.digest()); + System.out.println(expected); + System.out.println(result); + if (!expected.equals(result)) + System.out.println("NOT EQUAL!"); + } catch (Exception x) { + x.printStackTrace(); + } + } + + public static String toString(byte[] ba) { + return toString(ba, 0, ba.length); + } + public static final String toString(byte[] ba, int offset, int length) { + char[] buf = new char[length * 2]; + for (int i = 0, j = 0, k; i < length; ) { + k = ba[offset + i++]; + buf[j++] = HEX_DIGITS[(k >>> 4) & 0x0F]; + buf[j++] = HEX_DIGITS[ k & 0x0F]; + } + return new String(buf); + } + + private static final char[] HEX_DIGITS = "0123456789ABCDEF".toCharArray(); + +} |