This is the mail archive of the
java-prs@gcc.gnu.org
mailing list for the Java project.
[Bug java/17903] New: Incorrect SHA result
- From: "ovidr at users dot sourceforge dot net" <gcc-bugzilla at gcc dot gnu dot org>
- To: java-prs at gcc dot gnu dot org
- Date: 9 Oct 2004 04:02:46 -0000
- Subject: [Bug java/17903] New: Incorrect SHA result
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
gcc version 4.0.0 20040922 (experimental)
gcj --main=shatest shatest.java
> ./a.out
84983E441C3BD26EBAAE4AA1F95129E5E54670F1
4C39C6859F663A6B98679AD874DD60AD98D83700
NOT EQUAL!
They are equal in sun's java, and gcc 3.4.0
import java.security.*;
class shatest {
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();
}
--
Summary: Incorrect SHA result
Product: gcc
Version: 4.0.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: java
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ovidr at users dot sourceforge dot net
CC: gcc-bugs at gcc dot gnu dot org,java-prs at gcc dot gnu
dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17903