IAIK PKCS11包装器中的一对私钥和证书如何匹配?

时间:2019-06-30 10:26:14

标签: java pkcs#11 iaik-jce

我想在Java中使用pkcs11令牌。因此,我使用“ IAIK”作为pkcs11 java包装器。我可以搜索诸如密钥和证书之类的对象,但是找不到哪个密钥属于哪个证书。我使用“ CryptoKi Manager”搜索令牌中的对象,它显示了证书和密钥之间的连接,如下图所示。然后我研究了PKCS11标准,它说有一个名为“ certId”的字段声明了此连接,但在“ IAIK”中找不到它。 “ IAIK”是否在其证书对象中支持此功能?怎么样?

enter image description here

1 个答案:

答案 0 :(得分:2)

此连接通过CKA_ID属性引用PKCS#11版本2.20:

  

CKA_ID字段旨在区分多个密钥。在公众的情况下   和私钥,此字段有助于处理同一主题持有的多个密钥;的   公钥及其对应的私钥的密钥标识符应相同。的   如果存在,则密钥标识符也应与相应证书的标识符相同。   但是,Cryptoki不强制执行这些关联。 (有关详情,请参见第10.6   评论。

请注意,未强制执行此关联(YMMV),但是明智的实现方式是这种方式。

在PKCS#11包装器中使用Key.getId()X509PublicKeyCertificate.getID()方法。

对于IAIK提​​供程序(请注意,您需要许可证),请使用IAIKPKCS11Key.getKeyID()将公用密钥对象和专用密钥对象配对。我不知道如何从TokenKeyStore获得的证书中获得CKA_ID的价值。

祝你好运!