You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Tim Ellison (JIRA)" <ji...@apache.org> on 2006/07/11 09:35:31 UTC
[jira] Closed: (HARMONY-743) [classlib][security] compatibility:
unexpected ArrayIndexOutOfBoundsException for
MessageDigest.digest(byte[],Integer.MAX_VALUE,int);
[ http://issues.apache.org/jira/browse/HARMONY-743?page=all ]
Tim Ellison closed HARMONY-743:
-------------------------------
Verified by Vladimir.
> [classlib][security] compatibility: unexpected ArrayIndexOutOfBoundsException for MessageDigest.digest(byte[],Integer.MAX_VALUE,int);
> -------------------------------------------------------------------------------------------------------------------------------------
>
> Key: HARMONY-743
> URL: http://issues.apache.org/jira/browse/HARMONY-743
> Project: Harmony
> Type: Bug
> Components: Classlib
> Reporter: Vladimir Ivanov
> Assignee: Tim Ellison
> Attachments: MessageDigest.patch, MessageDigest2Test.patch
>
> The Harmony throws the ArrayIndexOutOfBoundsException for methods MessageDigest.getInstance("SHA").digest(new byte[] {},Integer.MAX_VALUE,755) and MessageDigest.getInstance("SHA").update(new byte[] {},Integer.MAX_VALUE,Integer.MAX_VALUE) while RI throws IllegalArgumentException.
> ============================ test.java ===============================
> import java.security.*;
> public class test {
> public static void main (String[] args) {
> try {
> MessageDigest.getInstance("SHA").digest(new byte[] {},Integer.MAX_VALUE,755);
> } catch (Exception e) {
> e.printStackTrace();
> }
> try {
> MessageDigest.getInstance("SHA").update(new byte[] {},Integer.MAX_VALUE,Integer.MAX_VALUE);
> } catch (Exception e) {
> e.printStackTrace();
> }
> }
> }
> ====================================================
> Output:
> C:\tmp\tmp17>C:\jrockit-jdk1.5.0-windows-ia32\bin\java.exe -showversion test
> java version "1.5.0"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
> BEA WebLogic JRockit(R) (build dra-38972-20041208-2001-win-ia32, R25.0.0-75, GC: System optimized over throughput (initial strategy singleparpar))
> java.lang.IllegalArgumentException: Output buffer too small for specified offset and length
> at java.security.MessageDigest.digest(MessageDigest.java:333)
> at test.main(test.java:6)
> java.lang.IllegalArgumentException: Input buffer too short
> at java.security.MessageDigest.update(MessageDigest.java:267)
> at test.main(test.java:11)
> C:\tmp\tmp17>C:\harmony\trunk_0427\deploy\jdk\jre\bin\java.exe -showversion test
> java version 1.5 (subset)
> (c) Copyright 1991, 2006 The Apache Software Foundation or its licensors, as applicable.
> java.lang.ArrayIndexOutOfBoundsException
> at java.lang.Throwable.<init>(Throwable.java:61)
> at java.lang.System.arraycopy(System.java:274)
> at java.lang.System.arraycopy(System.java:184)
> at java.security.MessageDigestSpi.engineDigest(MessageDigestSpi.java:110)
> at java.security.MessageDigest.digest(MessageDigest.java:208)
> at test.main(test.java:6)
> java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 2147483647
> at org.bouncycastle.crypto.digests.SHA1Digest.processWord(Unknown Source)
> at org.bouncycastle.crypto.digests.GeneralDigest.update(Unknown Source)
> at org.bouncycastle.jce.provider.JDKMessageDigest.engineUpdate(Unknown Source)
> at java.security.MessageDigest.update(MessageDigest.java:172)
> at test.main(test.java:11)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira