从PKCS11中的Key或data Object中提取CKA_Value

时间:2013-11-14 16:44:28

标签: pkcs#11

我想从PKCS11的KEY / Data对象中读取Key值到局部变量中。 我观察到Key存储在Key对象的CKA_VALUE中。 哪个是用于将此值传递给我的局部变量的理想函数?

我使用了C_GetAttributeValue但没有用。

请指导我。

由于 戒日

3 个答案:

答案 0 :(得分:0)

通常无法从硬件设备中提取非对称算法和对称密钥的私钥。这是一种保护措施。这就是为什么你无法获得价值的原因。

存在异常(某些实现允许您添加密钥并明确将其标记为未受保护,在这种情况下可以在以后读取密钥)但这会降低安全性和其他用户权益,因此这不受欢迎。

答案 1 :(得分:0)

在某些实现中,如果将CKA.CKA_SENSITIVE设置为false,则可以读取该值。

答案 2 :(得分:0)

如果将密钥上的CKA_EXTRACTABLE设置为CK_FALSE,则无法使用PKCS#11提取该值。

如果CKA_SENSITIVE设置为CK_TRUE,则无法以纯文本格式提取密钥。

但是,

如果CKA_EXTRACTABLE为CK_TRUE,而CKA_SENSITIVE为CK_FALSE,则可以使用CKA_VALUE提取密钥。

如果CKA_EXTRACTABLE为CK_TRUE,而CKA_SENSITIVE为CK_TRUE,则可以通过以下方式提取密钥:使用C_WrapKey封装密钥,然后将封装的密钥解包到设备外部。