-
Bug
-
Resolution: Not an Issue
-
P4
-
None
-
21
-
generic
-
generic
ADDITIONAL SYSTEM INFORMATION :
Linux 5.15.167.4-microsoft-standard-WSL2 #1 SMP Tue Nov 5 00:21:55 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
WSL2 Ubuntu 22.04
java 21.0.7 2025-04-15 LTS
Java(TM) SE Runtime Environment (build 21.0.7+8-LTS-245)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.7+8-LTS-245, mixed mode, sharing)
openjdk 21.0.7 2025-04-15 LTS
IBM Semeru Runtime Open Edition 21.0.7.0 (build 21.0.7+6-LTS)
Eclipse OpenJ9 VM 21.0.7.0 (build openj9-0.51.0, JRE 21 Linux amd64-64-Bit Compressed References 20250415_458 (JIT enabled, AOT enabled)
OpenJ9 - 31cf5538b0
OMR - 9bcff94a2
JCL - 26c2dc3d801 based on jdk-21.0.7+6)
A DESCRIPTION OF THE PROBLEM :
Compiling and running the test case using Hotspot will throw a `InvalidKeyException`.
However, using OpenJ9 the test case will run successfully.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
>>> javac Test.java
>>> path/to/hotspot-21/bin/java Test
java.security.InvalidKeyException: Wrong algorithm: AES or Rijndael required
at java.base/com.sun.crypto.provider.AESCrypt.init(AESCrypt.java:1043)
at java.base/com.sun.crypto.provider.CipherBlockChaining.init(CipherBlockChaining.java:97)
at java.base/com.sun.crypto.provider.CipherCore.init(CipherCore.java:481)
at java.base/com.sun.crypto.provider.CipherCore.init(CipherCore.java:399)
at java.base/com.sun.crypto.provider.AESCipher.engineInit(AESCipher.java:311)
at java.base/javax.crypto.Cipher.implInit(Cipher.java:872)
at java.base/javax.crypto.Cipher.chooseProvider(Cipher.java:934)
at java.base/javax.crypto.Cipher.init(Cipher.java:1313)
at java.base/javax.crypto.Cipher.init(Cipher.java:1246)
at Test.main(Test.java:8)
>>> path/to/openj9-21/bin/java Test
# Execute successfully
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Execute successfully
ACTUAL -
java.security.InvalidKeyException: Wrong algorithm: AES or Rijndael required
at java.base/com.sun.crypto.provider.AESCrypt.init(AESCrypt.java:1043)
at java.base/com.sun.crypto.provider.CipherBlockChaining.init(CipherBlockChaining.java:97)
at java.base/com.sun.crypto.provider.CipherCore.init(CipherCore.java:481)
at java.base/com.sun.crypto.provider.CipherCore.init(CipherCore.java:399)
at java.base/com.sun.crypto.provider.AESCipher.engineInit(AESCipher.java:311)
at java.base/javax.crypto.Cipher.implInit(Cipher.java:872)
at java.base/javax.crypto.Cipher.chooseProvider(Cipher.java:934)
at java.base/javax.crypto.Cipher.init(Cipher.java:1313)
at java.base/javax.crypto.Cipher.init(Cipher.java:1246)
at Test.main(Test.java:8)
---------- BEGIN SOURCE ----------
public class Test {
public static void main(String[] args) throws Exception {
javax.crypto.SecretKeyFactory factory = javax.crypto.SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256");
javax.crypto.spec.PBEKeySpec spec = new javax.crypto.spec.PBEKeySpec("securePassword".toCharArray(), "randomSalt".getBytes(), 65536, 256);
javax.crypto.SecretKey secretKey = factory.generateSecret(spec);
try {
javax.crypto.Cipher cipherInstance = javax.crypto.Cipher.getInstance("AES/CBC/PKCS5Padding");
cipherInstance.init(javax.crypto.Cipher.ENCRYPT_MODE, secretKey);
} catch (Exception e) {
e.printStackTrace();
}
}
}
---------- END SOURCE ----------
Linux 5.15.167.4-microsoft-standard-WSL2 #1 SMP Tue Nov 5 00:21:55 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
WSL2 Ubuntu 22.04
java 21.0.7 2025-04-15 LTS
Java(TM) SE Runtime Environment (build 21.0.7+8-LTS-245)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.7+8-LTS-245, mixed mode, sharing)
openjdk 21.0.7 2025-04-15 LTS
IBM Semeru Runtime Open Edition 21.0.7.0 (build 21.0.7+6-LTS)
Eclipse OpenJ9 VM 21.0.7.0 (build openj9-0.51.0, JRE 21 Linux amd64-64-Bit Compressed References 20250415_458 (JIT enabled, AOT enabled)
OpenJ9 - 31cf5538b0
OMR - 9bcff94a2
JCL - 26c2dc3d801 based on jdk-21.0.7+6)
A DESCRIPTION OF THE PROBLEM :
Compiling and running the test case using Hotspot will throw a `InvalidKeyException`.
However, using OpenJ9 the test case will run successfully.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
>>> javac Test.java
>>> path/to/hotspot-21/bin/java Test
java.security.InvalidKeyException: Wrong algorithm: AES or Rijndael required
at java.base/com.sun.crypto.provider.AESCrypt.init(AESCrypt.java:1043)
at java.base/com.sun.crypto.provider.CipherBlockChaining.init(CipherBlockChaining.java:97)
at java.base/com.sun.crypto.provider.CipherCore.init(CipherCore.java:481)
at java.base/com.sun.crypto.provider.CipherCore.init(CipherCore.java:399)
at java.base/com.sun.crypto.provider.AESCipher.engineInit(AESCipher.java:311)
at java.base/javax.crypto.Cipher.implInit(Cipher.java:872)
at java.base/javax.crypto.Cipher.chooseProvider(Cipher.java:934)
at java.base/javax.crypto.Cipher.init(Cipher.java:1313)
at java.base/javax.crypto.Cipher.init(Cipher.java:1246)
at Test.main(Test.java:8)
>>> path/to/openj9-21/bin/java Test
# Execute successfully
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Execute successfully
ACTUAL -
java.security.InvalidKeyException: Wrong algorithm: AES or Rijndael required
at java.base/com.sun.crypto.provider.AESCrypt.init(AESCrypt.java:1043)
at java.base/com.sun.crypto.provider.CipherBlockChaining.init(CipherBlockChaining.java:97)
at java.base/com.sun.crypto.provider.CipherCore.init(CipherCore.java:481)
at java.base/com.sun.crypto.provider.CipherCore.init(CipherCore.java:399)
at java.base/com.sun.crypto.provider.AESCipher.engineInit(AESCipher.java:311)
at java.base/javax.crypto.Cipher.implInit(Cipher.java:872)
at java.base/javax.crypto.Cipher.chooseProvider(Cipher.java:934)
at java.base/javax.crypto.Cipher.init(Cipher.java:1313)
at java.base/javax.crypto.Cipher.init(Cipher.java:1246)
at Test.main(Test.java:8)
---------- BEGIN SOURCE ----------
public class Test {
public static void main(String[] args) throws Exception {
javax.crypto.SecretKeyFactory factory = javax.crypto.SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256");
javax.crypto.spec.PBEKeySpec spec = new javax.crypto.spec.PBEKeySpec("securePassword".toCharArray(), "randomSalt".getBytes(), 65536, 256);
javax.crypto.SecretKey secretKey = factory.generateSecret(spec);
try {
javax.crypto.Cipher cipherInstance = javax.crypto.Cipher.getInstance("AES/CBC/PKCS5Padding");
cipherInstance.init(javax.crypto.Cipher.ENCRYPT_MODE, secretKey);
} catch (Exception e) {
e.printStackTrace();
}
}
}
---------- END SOURCE ----------