【问题标题】:PKCS11Exception ckr_attribute_type_invalidPKCS11Exception ckr_attribute_type_invalid
【发布时间】:2015-10-21 12:41:32
【问题描述】:

我正在尝试创建一个密钥库以使用智能卡读卡器获取私钥。

String config = "name = AKIS\nlibrary = C:/Windows/System32/akisp11.dll";
Security.addProvider(akisProvider);
KeyStore ks = KeyStore.getInstance("PKCS11", akisProvider);
ks.load(null, "000000".toCharArray());

但它给了我这个例外:

java.io.IOException: load failed
    at sun.security.pkcs11.P11KeyStore.engineLoad(P11KeyStore.java:763)
    at java.security.KeyStore.load(KeyStore.java:1445)
    at deneme.AkisImzaImpl.dene(AkisImzaImpl.java:55)
    at deneme.Deneme.main(Deneme.java:83)
Caused by: sun.security.pkcs11.wrapper.PKCS11Exception: CKR_ATTRIBUTE_TYPE_INVALID
    at sun.security.pkcs11.wrapper.PKCS11.C_GetAttributeValue(Native Method)
    at sun.security.pkcs11.wrapper.PKCS11$SynchronizedPKCS11.C_GetAttributeValue(PKCS11.java:1623)
    at sun.security.pkcs11.P11KeyStore.mapLabels(P11KeyStore.java:2277)
    at sun.security.pkcs11.P11KeyStore.engineLoad(P11KeyStore.java:755)
    ... 3 more

此代码直到昨天才有效。我无法弄清楚问题所在。如果您能帮助我,我将不胜感激。

【问题讨论】:

  • 欢迎来到 StackOverflow okorkut!请注意您使用的标签。始终指明语言/运行时(即 Java),并确保您使用具有大量关注者的高级标签。您的其中一个标签实际上在描述中具有 请勿使用
  • 您的环境有什么变化吗? PKCS#11 dll 可能吗?或者您是否在令牌中添加了对象?不幸的是,该异常对于实际问题非常没有帮助,因为可以为令牌中的任何对象调用C_GetAttributeValue
  • 没有任何变化。我从网站下载并安装并安装了驱动程序,为我提供了智能卡读卡器。我尝试了示例代码来测试它是否有效。它确实起作用了。但它不再起作用了。
  • API 记录器(如 this)对于查看“幕后”非常有用。
  • @vlp 啊,我不知道有一个开源的,很高兴知道!这是希望其他 .dll 不使用任何专有方法...

标签: java cryptography digital-signature keystore pkcs#11


【解决方案1】:

我已经解决了。没有任何 ID 的 3 把钥匙之一是额外的。我联系了信用卡公司,我们删除了额外的钥匙。现在它加载没有问题。感谢您的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-18
    • 1970-01-01
    相关资源
    最近更新 更多