-
Bug
-
Resolution: Fixed
-
P3
-
5.0
-
beta
-
generic
-
generic
Method javax.crypto.SealedObject.getObject(Key key, String provider) throws NullPointerException if key paramter is null. Such behavior is not specified and should be documented. Here is an example:
-----------------------------------------------------
import javax.crypto.SealedObject;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.Cipher;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.spec.SecretKeySpec;
import java.io.IOException;
import java.io.Serializable;
import java.security.*;
public class C implements Serializable {
public static void main(String argv[]) throws NoSuchAlgorithmException, NoSuchPaddingException, IOException, IllegalBlockSizeException, InvalidKeyException {
Cipher c = Cipher.getInstance("DES");
Key k = new SecretKeySpec(new byte[8], "DES");
c.init(Cipher.ENCRYPT_MODE, k);
String providerName = c.getProvider().getName();
SealedObject so = new SealedObject(new C(), c);
try {
so.getObject((Key)null, providerName);
} catch (ClassNotFoundException e) {
System.out.println("ClassNotFoundException was thrown");
} catch (NoSuchProviderException e) {
System.out.println("NoSuchProviderException was thrown");
} catch (NullPointerException e) {
System.out.println("NPE was thrown");
}
}
}
------------------------------------
aag@gaff:~/work/bugs/doc> javac C.java;java C
NPE was thrown
###@###.### 2004-12-08 13:36:51 GMT
-----------------------------------------------------
import javax.crypto.SealedObject;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.Cipher;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.spec.SecretKeySpec;
import java.io.IOException;
import java.io.Serializable;
import java.security.*;
public class C implements Serializable {
public static void main(String argv[]) throws NoSuchAlgorithmException, NoSuchPaddingException, IOException, IllegalBlockSizeException, InvalidKeyException {
Cipher c = Cipher.getInstance("DES");
Key k = new SecretKeySpec(new byte[8], "DES");
c.init(Cipher.ENCRYPT_MODE, k);
String providerName = c.getProvider().getName();
SealedObject so = new SealedObject(new C(), c);
try {
so.getObject((Key)null, providerName);
} catch (ClassNotFoundException e) {
System.out.println("ClassNotFoundException was thrown");
} catch (NoSuchProviderException e) {
System.out.println("NoSuchProviderException was thrown");
} catch (NullPointerException e) {
System.out.println("NPE was thrown");
}
}
}
------------------------------------
aag@gaff:~/work/bugs/doc> javac C.java;java C
NPE was thrown
###@###.### 2004-12-08 13:36:51 GMT