首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PKCS11Exception: CKR_KEY_FUNCTION_NOT_PERMITTED

PKCS11Exception: CKR_KEY_FUNCTION_NOT_PERMITTED
EN

Stack Overflow用户
提问于 2012-01-16 22:32:37
回答 2查看 8.1K关注 0票数 1

您看,我有一个applet,它基于RSA令牌中的pkcs11私钥解密一些信息。

在巴西,现在有一些包含2048位私钥的新证书。还有一些老型号,有规律的1024位,以及。

直到现在,我的应用程序运行良好。我使用的是1024位证书,所以不用麻烦。但是现在我有了一些新的证书要测试,它与标题错误崩溃:

PKCS11Exception: CKR_KEY_FUNCTION_NOT_PERMITTED

顺便说一句:它还在为1024位工作。

在sun.security.pkcs11.wrapper.PKCS11.C_DecryptInit(Native方法的sun.security.pkcs11.wrapper.PKCS11Exception: CKR_KEY_FUNCTION_NOT_PERMITTED引起的java.lang.Thread.run(未知源)在sun.security.pkcs11.P11RSACipher.implInit(P11RSACipher.java:193)的java.lang.Thread.run

我使用standart java安全命名空间。我在某些地方读到过Java的局限性,在政策上,与美国如何对待安全有关,我不知道.

有什么关系吗?

我知道我必须使用bouncyCastle提供者,但我只是想知道.

尽管如此,BC不能使用P11PrivateKey,因为它使用硬件进行签名或加密。

结论:

正如我所发现的,多亏了所有者,在电子标记属性中,钥匙不是为那个豪宅制造的.上帝啊..。

不起作用的:

序列号:(.)

发至:(.)

由:(.)印发

有效来源:(.)

有效期至:(.)

预期目的:客户身份验证,安全电子邮件

密钥大小: 2048位

集装箱名称:(.)

模数:(.)

密钥规范:AT_KEYSIGNATURE

另一个,起作用的那个:

序列号:(.)

发至:(.)

由:(.)印发

有效来源:(.)

有效期至:(.)

预期用途:安全电子邮件、客户身份验证、智能卡登录

密钥大小: 1024位

集装箱名称:(.)

模数:(.)

密钥规范:AT_KEYEXCHANGE

默认密钥容器:

辅助密钥容器:Yes

我知道AT_KEYEXCHANGE本身并不意味着可以解密,但是拥有AT_KEYSIGNATURE意味着只能用于那个豪宅。我已经测试过那一个能找到签名的..。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-17 00:09:44

它与Java密钥长度无关。尽管如此,Java可能甚至不知道密钥大小,因为关键仍然保留在硬件令牌上。属性CKA_ENCRYPT设置为CK_FALSE的CK_BBOOL值的可能性要大得多。

来自PKCS#11 v2.20 (加密)

CKR_KEY_FUNCTION_NOT_PERMITTED:有人尝试将密钥用于加密目的,而该密钥的属性并未设置为允许它这样做。例如,要使用密钥执行加密,该密钥必须将其CKA_ENCRYPT属性设置为CK_TRUE (密钥必须具有CKA_ENCRYPT属性的事实意味着密钥不能是私钥)。此返回值的优先级低于CKR_KEY_TYPE_INCONSISTENT.

票数 5
EN

Stack Overflow用户

发布于 2012-01-17 08:32:20

您正在混合PKCS#11 (CKR_XXX)和CryptoAPI (AT_XXX)。您可以使用pkcs11 11工具或pkcs11 11转储(google)列出您拥有的对象的属性。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8887218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档