gpt4 book ai didi

java - 如何在小程序中使用 MSCAPI 来加载 keystore

转载 作者:太空宇宙 更新时间:2023-11-04 08:35:29 24 4
gpt4 key购买 nike

我有一个小程序,允许用户使用他们的个人证书签署文档。该小程序已签名,但当它尝试加载其 keystore 时,我收到与 sunMSCAPI 相关的访问被拒绝错误。这是由以下代码行引起的:

store = KeyStore.getInstance("Windows-MY");
store.load(null, null);

根据我对小程序签名的理解,签名过程之后不需要跳过任何其他步骤(编辑策略文件等)。我尝试将所有小程序功能包装在:

AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
etc...

但这并没有帮助。我查了一下,在各个论坛上发现了一些评论,说 sunMSCAPI 仅在 JDK 6 中可用......我已经得到了。我已经没有想法了,任何帮助将不胜感激。

为了获得潜在的帮助,这里是访问被拒绝错误的堆栈跟踪:

java.security.AccessControlException: access denied (java.security.SecurityPermission authProvider.SunMSCAPI)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at sun.security.mscapi.KeyStore.engineLoad(KeyStore.java:736)
at sun.security.mscapi.KeyStore$MY.engineLoad(KeyStore.java:43)
at java.security.KeyStore.load(Unknown Source)
at com.bloop.signature.PKCS11.loadKeyStore(PKCS11.java:42)
at com.bloop.signature.PKCS11.sign(PKCS11.java:29)
at com.bloop.signature.applet.SignApplet.signDocument(SignApplet.java:103)
at com.bloop.signature.applet.SignApplet.access$200(SignApplet.java:19)
at com.bloop.signature.applet.SignApplet$1.run(SignApplet.java:64)
at java.lang.Thread.run(Unknown Source)

最佳答案

我用来签署小程序的 keystore 似乎无效。我生成了一个新的,用它签名,清除了 java 缓存,一切都开始正常工作。

为了完整起见,这是我运行的用于生成新商店的命令:

keytool -genkey -alias keyPair -keyalg RSA -validity 500 -keystore myKeyStore -keypass <password> -storepass <password> -dname "<CN,OU,O,L,ST,C details>"

如果其他人也遇到过这个问题,希望上述内容有所帮助。

关于java - 如何在小程序中使用 MSCAPI 来加载 keystore ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6512373/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com