首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PKCS#11 C_WrapKey返回CKR_GENERAL_ERROR

PKCS#11 C_WrapKey返回CKR_GENERAL_ERROR
EN

Stack Overflow用户
提问于 2018-10-16 09:19:47
回答 1查看 2.6K关注 0票数 1

我遵循了这样的例子:8cs-example.html

若要使用rsa键对对称密钥进行包装,则此方法有效。

我试图实现的是封装一个非对称密钥(rsa私钥)。我所做的就是用私钥的secretKey替换“ObjectHandle”变量。但是,每次调用Wrapkey函数时,我都会得到CKR_GENERAL_ERROR。

有人能解释一下为什么这行不通吗?我在规范中找不到阻止不对称密钥包装的任何东西。

私钥的生成具有以下属性:

代码语言:javascript
复制
List<ObjectAttribute> privateKeyAttributes = new List<ObjectAttribute>();
privateKeyAttributes.Add(new ObjectAttribute(CKA.CKA_TOKEN, true));
privateKeyAttributes.Add(new ObjectAttribute(CKA.CKA_PRIVATE, true));
privateKeyAttributes.Add(new ObjectAttribute(CKA.CKA_ID, ConvertUtils.HexStringToBytes(id)));
privateKeyAttributes.Add(new ObjectAttribute(CKA.CKA_SENSITIVE, false));
privateKeyAttributes.Add(new ObjectAttribute(CKA.CKA_DECRYPT, true));
privateKeyAttributes.Add(new ObjectAttribute(CKA.CKA_SIGN, true));
privateKeyAttributes.Add(new ObjectAttribute(CKA.CKA_SIGN_RECOVER, true));
privateKeyAttributes.Add(new ObjectAttribute(CKA.CKA_EXTRACTABLE, true));

诚挚的问候,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-16 18:14:37

您似乎试图使用CKM_RSA_PKCS机制包装RSA私钥。PKCS#11 v2.20规范第12.1.6章规定:

PKCS#1 v1.5RSA机制表示CKM_RSA_PKCS,是一种基于RSA公钥密码体制和PKCS#1 v1.5中最初定义的块格式的多用途机制。 ..。 该机制可以对任何长度适当的秘密密钥进行封装和解封。当然,特定的令牌可能无法包装/解包它支持的每个适当长度的密钥。对于包装,加密操作的“输入”是被包装的密钥的CKA_VALUE属性的值;类似地,用于解包装。

PKCS#11规范只对对称密钥使用术语密钥。此外,CKA_VALUE属性对于RSA私钥是无效的。这不管用。

您最好的选择是整理设备/库的文档,并选择适合您需要的不同包装机制。

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

https://stackoverflow.com/questions/52832071

复制
相关文章

相似问题

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