我想将 PKCS11 的 KEY/Data 对象中的键值读入局部变量。我观察到 Key 存储在 Key 对象的 CKA_VALUE 中。哪个是用于将此值传递给我的局部变量的理想函数?
我已经使用了 C_GetAttributeValue 但没有帮助。
请指导我。
谢谢哈沙
我想将 PKCS11 的 KEY/Data 对象中的键值读入局部变量。我观察到 Key 存储在 Key 对象的 CKA_VALUE 中。哪个是用于将此值传递给我的局部变量的理想函数?
我已经使用了 C_GetAttributeValue 但没有帮助。
请指导我。
谢谢哈沙
非对称算法的私钥和对称密钥通常不能从硬件设备中提取出来。这是一种保护措施。这就是为什么你无法获得价值。
存在例外(某些实现允许您添加密钥并将其显式标记为不受保护,在这种情况下可以稍后读取密钥)但这会降低安全性和其他用户利益,因此这不受欢迎。
在某些实现中,如果您将 CKA.CKA_SENSITIVE 设置为 false,是的,您可以读取该值。
如果 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 包装密钥来提取密钥,然后在单元外解开包装的密钥。