【问题标题】:how C_CreateObject , C_GenerateKey and C_GenerateKeyPair are different ?C_CreateObject 、 C_GenerateKey 和 C_GenerateKeyPair 有何不同?
【发布时间】:2017-03-29 22:00:21
【问题描述】:

我们的 PKCS#11 库缺少 C_CreateObject 的实现。在开始实施之前,我想知道应该使用 C_CreateObject 而不是 C_GenerateKey/C_GenerateKeyPair 的实例。

【问题讨论】:

  • 我不知道你在这里问什么

标签: pkcs#11


【解决方案1】:

C_CreateObject将外部生成的现有数据对象、证书和/或密钥导入设备。 C_GenerateKey 在设备内部生成新的对称密钥 (DES/AES/...)。 C_GenerateKeyPair 在设备内部生成新的非对称密钥对 (RSA/ECC/...)。

【讨论】:

    【解决方案2】:

    PKCS#11 将密钥对(公钥和私钥)、证书和密钥视为令牌上的对象。还有一个数据对象,它只保存一些数据。

    C_GenerateKey 将创建一个 Secret Key 对象。

    C_GenerateKeyPair 将创建一个Public Key 和一个Private Key 对象(公钥和私钥结合起来将构成密钥对)。

    当您说C_GenerateKey 时,PKCS#11 知道它必须生成一个密钥对象并期望一个密钥对象模板。与C_GenerateKeyPair 类似,它知道它必须创建一个公钥对象和一个私钥对象,并期望它们各自的对象模板。

    但是当你说C_CreateObject时,你必须指定你想要创建的对象类型,并传入正确的对象模板。将此视为C_GenerateXXX 方法的抽象版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-14
      • 2014-01-10
      • 2012-09-02
      相关资源
      最近更新 更多