背景
我正在尝试使用充气城堡库在我的战争中解密私钥.现在我在一个独立的应用程序中首先测试了代码,它运行良好.现在,当我在Wildfly8.0中测试它作为webapp时,我正面临着与Bouncy城堡的一些问题.
Wildfly 8.0 am使用安装了充气城堡提供者模块.在v1.46中使用的BC版本.
我开发的代码使用v1.51.我按照这里提到的步骤:
已经尝试过了
问题
我得到的错误是:
unable to read encrypted data: JCE cannot authenticate the provider BC
Run Code Online (Sandbox Code Playgroud)
以及触发上述错误的代码如下:
PKCS8EncryptedPrivateKeyInfo kp = (PKCS8EncryptedPrivateKeyInfo) keyPair;
InputDecryptorProvider pkcs8dec = new JceOpenSSLPKCS8DecryptorProviderBuilder()
.setProvider(new BouncyCastleProvider())
.build("somepass".toCharArray());
PrivateKeyInfo pko = kp.decryptPrivateKeyInfo(pkcs8dec);<-- ##Error here
Run Code Online (Sandbox Code Playgroud)
另外要添加详细信息,在我的pom.xml中我添加了带有编译范围的jar,因此libs被复制到war中并安装在WEB-INF/lib中.
解决上述问题的任何提示?
我开发了一个应用程序,在 BountyCastle.jar 的帮助下使用了密码学。我还有一行 Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
当我从 Netbeans 执行程序时一切正常
但是当我将应用程序打包到内部使用 BouncyCastle jar 的可执行 jar 并执行该 jar 时,
我遇到异常
JCE 无法验证提供者 BC java.lang.SecurityException: JCE 无法验证提供者 BC
是否还有其他方法可以实现相同的效果。因为非技术人员很难将BountyCastle.jar添加到jre的ext文件夹中。那么还有其他方法可以解决我的问题吗?
在 netbeans 中打包 jar 时,是否有任何方法可以排除 BountyCastle.jar,以便可以从外部 lib 文件夹访问。
我在Mac OS上并在我的mac上执行软件更新后遇到此问题.
Caused by: java.lang.SecurityException: JCE cannot authenticate the provider BC
at javax.crypto.SunJCE_b.a(DashoA13*..)
at javax.crypto.SecretKeyFactory.getInstance(DashoA13*..)
at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.initialize(StandardPBEByteEncryptor.java:667)
... 95 more
Caused by: java.util.jar.JarException: Cannot parse jar:file:/Users/himajumdar/Work/jboss/jboss-5.1.0.GA/server/default/tmp/a00c-b5p2h4-hgi84jo1-1-hgi84qe5-w/csa.ear!/lib/bcprov-jdk15-140.jar
at javax.crypto.SunJCE_c.a(DashoA13*..)
at javax.crypto.SunJCE_b.b(DashoA13*..)
at javax.crypto.SunJCE_b.a(DashoA13*..)
... 98 more
Run Code Online (Sandbox Code Playgroud)
我试过这些建议
但这有助于帮助.我尝试将jdk6更新为jdk7并做了同样的事情,得到了一个略有不同的无符号jar错误
at org.jboss.seam.Component.newInstance(Component.java:2132)
... 75 more
Caused by: java.lang.SecurityException: JCE cannot authenticate the provider BC
at javax.crypto.JceSecurity.getInstance(JceSecurity.java:114)
at javax.crypto.SecretKeyFactory.getInstance(SecretKeyFactory.java:243)
at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.initialize(StandardPBEByteEncryptor.java:667)
... 95 more
Caused by: java.util.jar.JarException: jar:file:/Users/himajumdar/Work/jboss/jboss-5.1.0.GA/server/default/tmp/a00c-4nf5e1-hgiayarg-1-hgiayihg-w/csa.ear!/lib/bcprov-jdk15-140.jar has unsigned entries - csa-ejb-3.45.0.8-SNAPSHOT.jar
at javax.crypto.JarVerifier.verifySingleJar(JarVerifier.java:462) …Run Code Online (Sandbox Code Playgroud)