首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将公共RSA密钥上传到HSM (使用PKCS#11库)?

如何将公共RSA密钥上传到HSM (使用PKCS#11库)?
EN

Stack Overflow用户
提问于 2014-02-14 13:00:33
回答 1查看 3.1K关注 0票数 2

我对使用PKCS#11库非常陌生,所以也许有更多经验的人可以澄清问题。

我想做以下几点:

  1. 上传到HSM现有RSA公钥(在PC上生成)
  2. 然后使用这个上传的密钥包装在HSM上生成的对称密钥。

我知道如何生成对称密钥,但是如何上传现有的RSA公钥?

这可以使用PKCS#11库吗?

使用PKCS#11用公钥包装密钥上似乎存在类似的问题,但它使用的是在HSM上生成的RSA密钥对。我需要上传RSA公钥给HSM本人。

EN

回答 1

Stack Overflow用户

发布于 2018-03-01 05:07:40

我们可以使用C_CreateObject函数的PKCS#11将公钥导入到高速机床。这可以从

RSA PKCS#11函数->对象管理函数-> C_CreateObject

还有一个加载公钥的例子。但是,它需要令牌支持才能从加密库加载公钥。

代码语言:javascript
复制
CK_SESSION_HANDLE hSession;
CK_OBJECT_HANDLE hKey;
CK_OBJECT_CLASS keyClass = CKO_PUBLIC_KEY;
CK_KEY_TYPE keyType = CKK_RSA;
CK_BYTE modulus[] = {... };
CK_BYTE exponent[] = {... };
CK_ATTRIBUTE keyTemplate[] = {
    {CKA_CLASS, &keyClass, sizeof(keyClass)}
    ,
    {CKA_KEY_TYPE, &keyType, sizeof(keyType)}
    ,
    {CKA_WRAP, &true, sizeof(true)}
    ,
    {CKA_MODULUS, modulus, sizeof(modulus)}
    ,
    {CKA_PUBLIC_EXPONENT, exponent, sizeof(exponent)}
};

CK_RV rv;

/* Create an RSA public key object */
rv = C_CreateObject(hSession, &keyTemplate, 5, &hKey);
if (rv == CKR_OK) {
.
.
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21780126

复制
相关文章

相似问题

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