You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Vladimir Ivanov (JIRA)" <ji...@apache.org> on 2006/07/05 07:17:29 UTC

[jira] Created: (HARMONY-758) [classlib][security]javax.crypto.spec.CipherOutputStream.write(byte[], 0, 0) throws IllegalStateException while RI does not

[classlib][security]javax.crypto.spec.CipherOutputStream.write(byte[], 0, 0)  throws  IllegalStateException while RI does not
-----------------------------------------------------------------------------------------------------------------------------

         Key: HARMONY-758
         URL: http://issues.apache.org/jira/browse/HARMONY-758
     Project: Harmony
        Type: Bug

  Components: Classlib  
    Reporter: Vladimir Ivanov


The Harmony method javax.crypto.spec.CipherOutputStream.write(byte[], 0, 0) throws  IllegalStateException while RI does not
Seems, it related to the issue 757 to add boundary checks before main action.

================ test.java =======================
import javax.crypto.*;
import java.io.*;

public class test  {
  public static void main (String[] args) {  
      try {        
          Cipher cf = Cipher.getInstance("DES/CBC/PKCS5Padding");
          NullCipher nc = new NullCipher();
          CipherOutputStream stream1 = new CipherOutputStream(new BufferedOutputStream((OutputStream) null), nc);
          CipherOutputStream stream2 = new CipherOutputStream(stream1, cf);
          CipherOutputStream stream3 = new CipherOutputStream(stream2, nc);
          stream3.write(new byte[] {0}, 0, 0);
          System.out.println("OK");
       } 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))

OK

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.IllegalStateException: Cipher has not yet been initialized properly
        at javax.crypto.Cipher.update(Cipher.java:537)
        at javax.crypto.CipherOutputStream.write(CipherOutputStream.java:76)
        at javax.crypto.CipherOutputStream.write(CipherOutputStream.java:68)
        at javax.crypto.CipherOutputStream.write(CipherOutputStream.java:78)
        at test.main(test.java:12)


-- 
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


[jira] Closed: (HARMONY-758) [classlib][security]javax.crypto.spec.CipherOutputStream.write(byte[], 0, 0) throws IllegalStateException while RI does not

Posted by "Mikhail Loenko (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/HARMONY-758?page=all ]

Mikhail Loenko closed HARMONY-758.
----------------------------------


verified

> [classlib][security]javax.crypto.spec.CipherOutputStream.write(byte[], 0, 0)  throws  IllegalStateException while RI does not
> -----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-758
>                 URL: http://issues.apache.org/jira/browse/HARMONY-758
>             Project: Harmony
>          Issue Type: Bug
>          Components: Classlib
>            Reporter: Vladimir Ivanov
>         Assigned To: Mikhail Loenko
>         Attachments: CipherOutputStreamTest.patch, harmony-758.patch.txt
>
>
> The Harmony method javax.crypto.spec.CipherOutputStream.write(byte[], 0, 0) throws  IllegalStateException while RI does not
> Seems, it related to the issue 757 to add boundary checks before main action.
> ================ test.java =======================
> import javax.crypto.*;
> import java.io.*;
> public class test  {
>   public static void main (String[] args) {  
>       try {        
>           Cipher cf = Cipher.getInstance("DES/CBC/PKCS5Padding");
>           NullCipher nc = new NullCipher();
>           CipherOutputStream stream1 = new CipherOutputStream(new BufferedOutputStream((OutputStream) null), nc);
>           CipherOutputStream stream2 = new CipherOutputStream(stream1, cf);
>           CipherOutputStream stream3 = new CipherOutputStream(stream2, nc);
>           stream3.write(new byte[] {0}, 0, 0);
>           System.out.println("OK");
>        } 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))
> OK
> 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.IllegalStateException: Cipher has not yet been initialized properly
>         at javax.crypto.Cipher.update(Cipher.java:537)
>         at javax.crypto.CipherOutputStream.write(CipherOutputStream.java:76)
>         at javax.crypto.CipherOutputStream.write(CipherOutputStream.java:68)
>         at javax.crypto.CipherOutputStream.write(CipherOutputStream.java:78)
>         at test.main(test.java:12)

-- 
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

        

[jira] Resolved: (HARMONY-758) [classlib][security]javax.crypto.spec.CipherOutputStream.write(byte[], 0, 0) throws IllegalStateException while RI does not

Posted by "Mikhail Loenko (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/HARMONY-758?page=all ]
     
Mikhail Loenko resolved HARMONY-758:
------------------------------------

    Resolution: Fixed

thanks for the patch, Alexander!
applied in revision 420500
Vladimir, please check that it works now

> [classlib][security]javax.crypto.spec.CipherOutputStream.write(byte[], 0, 0)  throws  IllegalStateException while RI does not
> -----------------------------------------------------------------------------------------------------------------------------
>
>          Key: HARMONY-758
>          URL: http://issues.apache.org/jira/browse/HARMONY-758
>      Project: Harmony
>         Type: Bug

>   Components: Classlib
>     Reporter: Vladimir Ivanov
>     Assignee: Mikhail Loenko
>  Attachments: CipherOutputStreamTest.patch, harmony-758.patch.txt
>
> The Harmony method javax.crypto.spec.CipherOutputStream.write(byte[], 0, 0) throws  IllegalStateException while RI does not
> Seems, it related to the issue 757 to add boundary checks before main action.
> ================ test.java =======================
> import javax.crypto.*;
> import java.io.*;
> public class test  {
>   public static void main (String[] args) {  
>       try {        
>           Cipher cf = Cipher.getInstance("DES/CBC/PKCS5Padding");
>           NullCipher nc = new NullCipher();
>           CipherOutputStream stream1 = new CipherOutputStream(new BufferedOutputStream((OutputStream) null), nc);
>           CipherOutputStream stream2 = new CipherOutputStream(stream1, cf);
>           CipherOutputStream stream3 = new CipherOutputStream(stream2, nc);
>           stream3.write(new byte[] {0}, 0, 0);
>           System.out.println("OK");
>        } 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))
> OK
> 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.IllegalStateException: Cipher has not yet been initialized properly
>         at javax.crypto.Cipher.update(Cipher.java:537)
>         at javax.crypto.CipherOutputStream.write(CipherOutputStream.java:76)
>         at javax.crypto.CipherOutputStream.write(CipherOutputStream.java:68)
>         at javax.crypto.CipherOutputStream.write(CipherOutputStream.java:78)
>         at test.main(test.java:12)

-- 
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


[jira] Commented: (HARMONY-758) [classlib][security]javax.crypto.spec.CipherOutputStream.write(byte[], 0, 0) throws IllegalStateException while RI does not

Posted by "Vladimir Ivanov (JIRA)" <ji...@apache.org>.
    [ http://issues.apache.org/jira/browse/HARMONY-758?page=comments#action_12420069 ] 

Vladimir Ivanov commented on HARMONY-758:
-----------------------------------------

verified, thanks

> [classlib][security]javax.crypto.spec.CipherOutputStream.write(byte[], 0, 0)  throws  IllegalStateException while RI does not
> -----------------------------------------------------------------------------------------------------------------------------
>
>          Key: HARMONY-758
>          URL: http://issues.apache.org/jira/browse/HARMONY-758
>      Project: Harmony
>         Type: Bug

>   Components: Classlib
>     Reporter: Vladimir Ivanov
>     Assignee: Mikhail Loenko
>  Attachments: CipherOutputStreamTest.patch, harmony-758.patch.txt
>
> The Harmony method javax.crypto.spec.CipherOutputStream.write(byte[], 0, 0) throws  IllegalStateException while RI does not
> Seems, it related to the issue 757 to add boundary checks before main action.
> ================ test.java =======================
> import javax.crypto.*;
> import java.io.*;
> public class test  {
>   public static void main (String[] args) {  
>       try {        
>           Cipher cf = Cipher.getInstance("DES/CBC/PKCS5Padding");
>           NullCipher nc = new NullCipher();
>           CipherOutputStream stream1 = new CipherOutputStream(new BufferedOutputStream((OutputStream) null), nc);
>           CipherOutputStream stream2 = new CipherOutputStream(stream1, cf);
>           CipherOutputStream stream3 = new CipherOutputStream(stream2, nc);
>           stream3.write(new byte[] {0}, 0, 0);
>           System.out.println("OK");
>        } 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))
> OK
> 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.IllegalStateException: Cipher has not yet been initialized properly
>         at javax.crypto.Cipher.update(Cipher.java:537)
>         at javax.crypto.CipherOutputStream.write(CipherOutputStream.java:76)
>         at javax.crypto.CipherOutputStream.write(CipherOutputStream.java:68)
>         at javax.crypto.CipherOutputStream.write(CipherOutputStream.java:78)
>         at test.main(test.java:12)

-- 
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


[jira] Assigned: (HARMONY-758) [classlib][security]javax.crypto.spec.CipherOutputStream.write(byte[], 0, 0) throws IllegalStateException while RI does not

Posted by "Mikhail Loenko (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/HARMONY-758?page=all ]

Mikhail Loenko reassigned HARMONY-758:
--------------------------------------

    Assign To: Mikhail Loenko

> [classlib][security]javax.crypto.spec.CipherOutputStream.write(byte[], 0, 0)  throws  IllegalStateException while RI does not
> -----------------------------------------------------------------------------------------------------------------------------
>
>          Key: HARMONY-758
>          URL: http://issues.apache.org/jira/browse/HARMONY-758
>      Project: Harmony
>         Type: Bug

>   Components: Classlib
>     Reporter: Vladimir Ivanov
>     Assignee: Mikhail Loenko
>  Attachments: CipherOutputStreamTest.patch, harmony-758.patch.txt
>
> The Harmony method javax.crypto.spec.CipherOutputStream.write(byte[], 0, 0) throws  IllegalStateException while RI does not
> Seems, it related to the issue 757 to add boundary checks before main action.
> ================ test.java =======================
> import javax.crypto.*;
> import java.io.*;
> public class test  {
>   public static void main (String[] args) {  
>       try {        
>           Cipher cf = Cipher.getInstance("DES/CBC/PKCS5Padding");
>           NullCipher nc = new NullCipher();
>           CipherOutputStream stream1 = new CipherOutputStream(new BufferedOutputStream((OutputStream) null), nc);
>           CipherOutputStream stream2 = new CipherOutputStream(stream1, cf);
>           CipherOutputStream stream3 = new CipherOutputStream(stream2, nc);
>           stream3.write(new byte[] {0}, 0, 0);
>           System.out.println("OK");
>        } 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))
> OK
> 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.IllegalStateException: Cipher has not yet been initialized properly
>         at javax.crypto.Cipher.update(Cipher.java:537)
>         at javax.crypto.CipherOutputStream.write(CipherOutputStream.java:76)
>         at javax.crypto.CipherOutputStream.write(CipherOutputStream.java:68)
>         at javax.crypto.CipherOutputStream.write(CipherOutputStream.java:78)
>         at test.main(test.java:12)

-- 
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


[jira] Updated: (HARMONY-758) [classlib][security]javax.crypto.spec.CipherOutputStream.write(byte[], 0, 0) throws IllegalStateException while RI does not

Posted by "Alexander Kleymenov (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/HARMONY-758?page=all ]

Alexander Kleymenov updated HARMONY-758:
----------------------------------------

    Attachment: harmony-758.patch.txt

Vladimir, Thank You for explanation! 
Attached patch fixes the problem and implements additional regression test cases.
Alexander

> [classlib][security]javax.crypto.spec.CipherOutputStream.write(byte[], 0, 0)  throws  IllegalStateException while RI does not
> -----------------------------------------------------------------------------------------------------------------------------
>
>          Key: HARMONY-758
>          URL: http://issues.apache.org/jira/browse/HARMONY-758
>      Project: Harmony
>         Type: Bug

>   Components: Classlib
>     Reporter: Vladimir Ivanov
>  Attachments: CipherOutputStreamTest.patch, harmony-758.patch.txt
>
> The Harmony method javax.crypto.spec.CipherOutputStream.write(byte[], 0, 0) throws  IllegalStateException while RI does not
> Seems, it related to the issue 757 to add boundary checks before main action.
> ================ test.java =======================
> import javax.crypto.*;
> import java.io.*;
> public class test  {
>   public static void main (String[] args) {  
>       try {        
>           Cipher cf = Cipher.getInstance("DES/CBC/PKCS5Padding");
>           NullCipher nc = new NullCipher();
>           CipherOutputStream stream1 = new CipherOutputStream(new BufferedOutputStream((OutputStream) null), nc);
>           CipherOutputStream stream2 = new CipherOutputStream(stream1, cf);
>           CipherOutputStream stream3 = new CipherOutputStream(stream2, nc);
>           stream3.write(new byte[] {0}, 0, 0);
>           System.out.println("OK");
>        } 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))
> OK
> 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.IllegalStateException: Cipher has not yet been initialized properly
>         at javax.crypto.Cipher.update(Cipher.java:537)
>         at javax.crypto.CipherOutputStream.write(CipherOutputStream.java:76)
>         at javax.crypto.CipherOutputStream.write(CipherOutputStream.java:68)
>         at javax.crypto.CipherOutputStream.write(CipherOutputStream.java:78)
>         at test.main(test.java:12)

-- 
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


[jira] Updated: (HARMONY-758) [classlib][security]javax.crypto.spec.CipherOutputStream.write(byte[], 0, 0) throws IllegalStateException while RI does not

Posted by "Vladimir Ivanov (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/HARMONY-758?page=all ]

Vladimir Ivanov updated HARMONY-758:
------------------------------------

    Attachment: CipherOutputStreamTest.patch

unit tests for issue 757 and 758

> [classlib][security]javax.crypto.spec.CipherOutputStream.write(byte[], 0, 0)  throws  IllegalStateException while RI does not
> -----------------------------------------------------------------------------------------------------------------------------
>
>          Key: HARMONY-758
>          URL: http://issues.apache.org/jira/browse/HARMONY-758
>      Project: Harmony
>         Type: Bug

>   Components: Classlib
>     Reporter: Vladimir Ivanov
>  Attachments: CipherOutputStreamTest.patch
>
> The Harmony method javax.crypto.spec.CipherOutputStream.write(byte[], 0, 0) throws  IllegalStateException while RI does not
> Seems, it related to the issue 757 to add boundary checks before main action.
> ================ test.java =======================
> import javax.crypto.*;
> import java.io.*;
> public class test  {
>   public static void main (String[] args) {  
>       try {        
>           Cipher cf = Cipher.getInstance("DES/CBC/PKCS5Padding");
>           NullCipher nc = new NullCipher();
>           CipherOutputStream stream1 = new CipherOutputStream(new BufferedOutputStream((OutputStream) null), nc);
>           CipherOutputStream stream2 = new CipherOutputStream(stream1, cf);
>           CipherOutputStream stream3 = new CipherOutputStream(stream2, nc);
>           stream3.write(new byte[] {0}, 0, 0);
>           System.out.println("OK");
>        } 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))
> OK
> 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.IllegalStateException: Cipher has not yet been initialized properly
>         at javax.crypto.Cipher.update(Cipher.java:537)
>         at javax.crypto.CipherOutputStream.write(CipherOutputStream.java:76)
>         at javax.crypto.CipherOutputStream.write(CipherOutputStream.java:68)
>         at javax.crypto.CipherOutputStream.write(CipherOutputStream.java:78)
>         at test.main(test.java:12)

-- 
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