使用新的权限属性重新签名“bcprov-ext-jdk16-140.jar”

时间:2014-01-08 21:51:02

标签: java applet bouncycastle jar-signing signed-applet

我有一个依赖于许多罐子的小程序。在我将java更新到7.45之后,applet生成消息“此应用程序将在未来的Java安全更新中被阻止,因为JAR文件清单不包含权限属性” 我向所有清单文件添加了权限属性“权限:所有权限”,之后我通过“6NRJ”证书辞去了所有这些罐子。

所有罐子都签名很好但不幸的是applet只在“bcprov-ext-jdk16-140.jar”中生成了一个例外。

这里有例外细节:

java.security.NoSuchProviderException: JCE cannot authenticate the provider BC 
        at javax.crypto.JceSecurity.getInstance(JceSecurity.java:101) 
        at javax.crypto.KeyGenerator.getInstance(KeyGenerator.java:249) 
        at org.bouncycastle.cms.CMSEnvelopedHelper.createKeyGenerator(Unknown Source) 
        at org.bouncycastle.cms.CMSEnvelopedHelper.createSymmetricKeyGenerator(Unknown Source) 
        at org.bouncycastle.cms.CMSEnvelopedDataGenerator.generate(Unknown Source) 
        at com.atexo.mpe.applet.AppletDiagnostic.init(AppletDiagnostic.java:142) 
        at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.init(Unknown Source) 
        at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) 
        at java.lang.Thread.run(Unknown Source) 
Caused by: java.util.jar.JarException: http://wma-migration.whitecapetech.local/ressources/applet/bcprov-ext-jdk16-140.jar is not signed by a trusted signer. 
        at javax.crypto.JarVerifier.verifySingleJar(JarVerifier.java:503) 
        at javax.crypto.JarVerifier.verifyJars(JarVerifier.java:322) 
        at javax.crypto.JarVerifier.verify(JarVerifier.java:250) 
        at javax.crypto.JceSecurity.verifyProviderJar(JceSecurity.java:161) 
        at javax.crypto.JceSecurity.getVerificationResult(JceSecurity.java:187) 
        at javax.crypto.JceSecurity.getInstance(JceSecurity.java:98) 
        ... 8 more 

我认为bcprov-ext-jdk16-140.jar之前是由充气城堡签署的。

添加权限属性后,有没有办法重新签名“bcprov-ext-jdk16-140.jar”?

提前感谢您的帮助

1 个答案:

答案 0 :(得分:0)

“我认为bcprov-ext-jdk16-140.jar之前是由充气城堡签署的。”

不,你可以验证这打开罐子。你将找不到签名。

“添加权限属性后,有没有办法重新签署”bcprov-ext-jdk16-140.jar“?

是肯定的。打开bcprov jar。使用文本编辑器添加权限属性。使用jarsigner签名。