0

我有一个来自 eToken SDK 的示例,它生成 RSA 密钥、创建数字签名并验证它。示例中的算法如下:

  • 生成 RSA 密钥(GENERATE_KEY_PAIR);
  • 为签名创建安全环境(PUT_DATA_SECI);
  • 恢复安全环境(MSE RESTORE);
  • 签名数据(PSO_CDS);
  • 为验证创建安全环境(PUT_DATA_SECI);
  • 恢复安全环境(MSE RESTORE);
  • 验证签名 (PDO_VDS)。

我已经将带有证书的外部密钥容器导入到令牌中,我需要摆脱算法中的 RSA 密钥生成项。如何找到我的私钥的对象 ID 以将其传递给 PUT_DATA_SECI APDU 命令?

4

1 回答 1

0

存储在令牌上的私有 RSA 是 RSA_PURE (0x0c)。它不能用于 PSO_CDS 操作。他们必须正确填充散列值(rfc-2313:块类型 1 + 散列 OID)并使用 PSO_DEC 来获取签名。结果将是与 PSO_CDS 相同的二进制数据。

于 2013-08-15T11:03:01.780 回答