■質問日: |
2007/06/12 |
■最終更新日: |
2013/01/21 |
■質問内容: |
WRC開発で電子署名を使おうとしているのですが、以下のExceptionが発生してしまい、署名ができず動作しません。 java.io.IOException: exception unwrapping private key - java.lang.SecurityException: Unsupported keysize or algorithm parameters at org.bouncycastle.jce.provider.JDKPKCS12KeyStore.unwrapKey(JDKPKCS12KeyStore.java:546) at org.bouncycastle.jce.provider.JDKPKCS12KeyStore.engineLoad(JDKPKCS12KeyStore.java:757) at java.security.KeyStore.load(Unknown Source) at jp.co.tenartni.xreport.digsig.LightDigitalSigner.setPkcs12FileInfo(LightDigitalSigner.java:117) at jp.co.tenartni.wrc.demo.EstimateAction.(EstimateAction.java:29) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at java.lang.Class.newInstance0(Unknown Source) at java.lang.Class.newInstance(Unknown Source) at org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:231) at org.apache.struts.action.RequestProcessor.processActionCreate(RequestProcessor.java:326) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:268) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525) at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:169) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at java.lang.Thread.run(Unknown Source) ※bouncycastleのバージョンによっては、java.lang.SecurityExceptionではなく、java.security.InvalidKeyExceptionの場合もあります。 |
■回答内容: |
WRC では電子署名処理にオープンソース暗号処理ライブラリBounchy Castle v1.25(http://www.bouncycastle.org)のJCE プロバイダを使用しています。v1.4.0 以降の J2SDK でこのJCE プロバイダを使用するには、暗号化強度制限を解除する必要がありま す。 暗号化強度制限を解除するために、「JCE Unlimited Strength Jurisdiction Policy Files」が必要です。「JCE Unlimited Strength Jurisdiction Policy Files」はOracle社サイト(http://www.oracle.com/technetwork/java/javase/downloads/index.html)からダウンロードすることができます。 セットアップ方法は、「JCE Unlimited Strength Jurisdiction Policy Files 」の README.txt を参照してください。 |
■添付資料: |
なし |