【发布时间】:2017-03-29 22:00:21
【问题描述】:
我们的 PKCS#11 库缺少 C_CreateObject 的实现。在开始实施之前,我想知道应该使用 C_CreateObject 而不是 C_GenerateKey/C_GenerateKeyPair 的实例。
【问题讨论】:
-
我不知道你在这里问什么
标签: pkcs#11
我们的 PKCS#11 库缺少 C_CreateObject 的实现。在开始实施之前,我想知道应该使用 C_CreateObject 而不是 C_GenerateKey/C_GenerateKeyPair 的实例。
【问题讨论】:
标签: pkcs#11
C_CreateObject将外部生成的现有数据对象、证书和/或密钥导入设备。 C_GenerateKey 在设备内部生成新的对称密钥 (DES/AES/...)。 C_GenerateKeyPair 在设备内部生成新的非对称密钥对 (RSA/ECC/...)。
【讨论】:
PKCS#11 将密钥对(公钥和私钥)、证书和密钥视为令牌上的对象。还有一个数据对象,它只保存一些数据。
C_GenerateKey 将创建一个 Secret Key 对象。
C_GenerateKeyPair 将创建一个Public Key 和一个Private Key 对象(公钥和私钥结合起来将构成密钥对)。
当您说C_GenerateKey 时,PKCS#11 知道它必须生成一个密钥对象并期望一个密钥对象模板。与C_GenerateKeyPair 类似,它知道它必须创建一个公钥对象和一个私钥对象,并期望它们各自的对象模板。
但是当你说C_CreateObject时,你必须指定你想要创建的对象类型,并传入正确的对象模板。将此视为C_GenerateXXX 方法的抽象版本。
【讨论】: