Reputation: 31
Trying to encrypt using .cer. It works in the local system but getting error when I move to production. I have the bcprov-jdk15on-158.jar file at Live server.
Source code
public static byte[] encryptUsingPublicKey(byte[] data, PublicKey publicKey) throws IOException, GeneralSecurityException {
Cipher pkCipher = Cipher.getInstance("RSA/ECB/PKCS1Padding", "BC");//Here iam Getting Error
pkCipher.init(Cipher.ENCRYPT_MODE, publicKey);
byte[] encSessionKey = pkCipher.doFinal(data);
return encSessionKey;
}
error stack trace
INFO: Illegal access: this web application instance has been stopped already. Could not load org.bouncycastle.jca.provider.asymmetric.rsa.CipherSpi$NoPadding. The eventual following stack trace is caused by an error thrown forbugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functio impact.
java.lang.IllegalStateException
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1777)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1735)
at java.security.Provider$Service.getImplClass(Provider.java:1636)
at java.security.Provider$Service.newInstance(Provider.java:1592)
at javax.crypto.Cipher.getInstance(Cipher.java:668)
at javax.crypto.Cipher.getInstance(Cipher.java:595)
at in.gov.cgg.struts.utilities.common.TAEncrypter.encryptUsingPublicKey(TAEncrypter.java:134)
at in.gov.cgg.struts.utilities.common.TAEncrypter.EncryptRequest(TAEncrypter.java:57)
...
java.security.NoSuchAlgorithmException: No such algorithm: RSA/ECB/PKCS1Padding
at javax.crypto.Cipher.getInstance(Cipher.java:687)
at javax.crypto.Cipher.getInstance(Cipher.java:595)
at in.gov.cgg.struts.utilities.common.TAEncrypter.encryptUsingPublicKey(TAEncrypter.java:134)
at in.gov.cgg.struts.utilities.common.TAEncrypter.EncryptRequest(TAEncrypter.java:57)
at in.gov.cgg.struts.actions.RequestHandlerAction.unspecified(RequestHandlerAction.java:78)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:256)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
....
Caused by: java.security.NoSuchAlgorithmException: class configured for Cipher (provider: BC) cannot be found.
at java.security.Provider$Service.getImplClass(Provider.java:1649)
at java.security.Provider$Service.newInstance(Provider.java:1592)
at javax.crypto.Cipher.getInstance(Cipher.java:668)
... 32 more
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.jcajce.provider.asymmetric.rsa.CipherSpi$NoPadding
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1892)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1735)
at java.security.Provider$Service.getImplClass(Provider.java:1636)
... 34 more
Upvotes: 3
Views: 4001
Reputation: 1868
java.lang.ClassNotFoundException
generated when the class is not available in your classpath
. Check you classpath
included the expected jar. Even it is on server but might not included in the classpth.
There is no other reason for java.lang.ClassNotFoundException
Upvotes: 2