Hi I am beginner in Java security, i encounter the following issue, when calling :
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
I got the error :
java.lang.ClassCastException: com.sun.crypto.provider.RSACipher cannot be cast to javax.crypto.CipherSpi
There are 5 more jars file for a payment gateway encryption in my war file:
- cryptix-jce-api.jar
- cryptix-jce-provider.jar
- cryptix-message-api.jar
- cryptix-openpgp-provider.jar
- cryptix-pki-api.jar
Without these 5 JAR files then the Cipher.getInstance() works, but that is not possible because I need the JARs for payment information encryption.
Anyone out there can show me the path of how should I overcome this issue?
Thanks for all the comments and answers.
In the end, I moved the 5 Jars out from WAR file to server Jars library directory and solved this.
In between there was an
java.lang.RuntimeException: NYI
.It was solved using the solution from here: http://javabeanz.wordpress.com/2009/06/11/java-lang-runtimeexception-nyi/
Hope this helps, to anyone out there.
Once again thanks!
Powermockito can't enhance javax.crypto classes so you might to add following annotation at the class level:
@PowerMockIgnore("javax.crypto.*") or @PowerMockIgnore({"javax.crypto" })
Add this at class level
@PowerMockIgnore("javax.crypto.*")
or@PowerMockIgnore({"javax.crypto" })
After adding it if it shows Jce security exception
You can download this file Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 8 and replace the local_policy jar file and US_policay jar file in this path: