From 2abb138b7906f247d88ad1489811d2266a04de2d Mon Sep 17 00:00:00 2001 From: Rutger Ovidius Date: Tue, 12 Oct 2004 10:13:39 +0000 Subject: re PR libgcj/17903 (Incorrect SHA result) 2004-10-12 Rutger Ovidius 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 --- libjava/ChangeLog | 8 ++++ libjava/testsuite/libjava.lang/md5test.java | 63 +++++++++++++++++++++++++++++ libjava/testsuite/libjava.lang/md5test.out | 12 ++++++ libjava/testsuite/libjava.lang/shatest.java | 39 ++++++++++++++++++ libjava/testsuite/libjava.lang/shatest.out | 2 + 5 files changed, 124 insertions(+) create mode 100644 libjava/testsuite/libjava.lang/md5test.java create mode 100644 libjava/testsuite/libjava.lang/md5test.out create mode 100644 libjava/testsuite/libjava.lang/shatest.java create mode 100644 libjava/testsuite/libjava.lang/shatest.out diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 7734e0e..75d69ee 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,11 @@ +2004-10-12 Rutger Ovidius + + 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. + 2004-10-11 Richard Henderson * include/posix-threads.h <__alpha__> (_Jv_ThreadId_t): Use void*. 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(); + +} diff --git a/libjava/testsuite/libjava.lang/md5test.out b/libjava/testsuite/libjava.lang/md5test.out new file mode 100644 index 0000000..0dd90c3 --- /dev/null +++ b/libjava/testsuite/libjava.lang/md5test.out @@ -0,0 +1,12 @@ +0CC175B9C0F1B6A831C399E269772661 +0CC175B9C0F1B6A831C399E269772661 +900150983CD24FB0D6963F7D28E17F72 +900150983CD24FB0D6963F7D28E17F72 +F96B697D7CB7938D525A2F31AAF161D0 +F96B697D7CB7938D525A2F31AAF161D0 +C3FCD3D76192E4007DFB496CCA67E13B +C3FCD3D76192E4007DFB496CCA67E13B +D174AB98D277D9F5A5611C2C9F419D9F +D174AB98D277D9F5A5611C2C9F419D9F +57EDF4A22BE3C955AC49DA2E2107B67A +57EDF4A22BE3C955AC49DA2E2107B67A diff --git a/libjava/testsuite/libjava.lang/shatest.java b/libjava/testsuite/libjava.lang/shatest.java new file mode 100644 index 0000000..4cc6d4f --- /dev/null +++ b/libjava/testsuite/libjava.lang/shatest.java @@ -0,0 +1,39 @@ +import java.security.*; + +class shatest { + + // gnu-crypto/source/gnu/testlet/gnu/crypto/hash/TestOfSha160.java + + public static void main(String[] argv) { + MessageDigest md=null; + try { + md = MessageDigest.getInstance("SHA-1"); + } catch (Exception e) { + e.printStackTrace(); + } + md.update("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq".getBytes(), 0, 56); + String exp = "84983E441C3BD26EBAAE4AA1F95129E5E54670F1"; + String result = toString(md.digest()); + System.out.println(exp); + System.out.println(result); + if (!exp.equals(result)) + System.out.println("NOT EQUAL!"); + + } + + 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(); + +} diff --git a/libjava/testsuite/libjava.lang/shatest.out b/libjava/testsuite/libjava.lang/shatest.out new file mode 100644 index 0000000..3c19286 --- /dev/null +++ b/libjava/testsuite/libjava.lang/shatest.out @@ -0,0 +1,2 @@ +84983E441C3BD26EBAAE4AA1F95129E5E54670F1 +84983E441C3BD26EBAAE4AA1F95129E5E54670F1 -- cgit v1.1