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

Java 在IAIK PKCS11包装器中,一对私钥和证书如何匹配?,java,pkcs#11,iaik-jce,Java,Pkcs#11,Iaik Jce,我想在java中使用pkcs11令牌。因此,我使用“IAIK”作为PKCS11Java包装器。我可以搜索像密钥和证书这样的对象,但我无法找出哪个密钥属于哪个证书。我在令牌中使用“CryptoKi管理器”搜索对象,它显示了证书和密钥之间的连接,如下图所示。然后我研究了PKCS11标准,它说有一个名为“certId”的字段声明了这个连接,但我在“IAIK”中找不到它。“IAIK”在其证书对象中是否支持此功能?怎么做 此连接通过引用PKCS 11 2.20版的CKA_ID属性进行: CKA_ID字段用

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


此连接通过引用PKCS 11 2.20版的
CKA_ID
属性进行:

CKA_ID字段用于区分多个键。就公众而言 和私钥,该字段帮助处理同一主体持有的多个密钥;这个 公钥及其对应私钥的密钥标识符应相同。这个 密钥标识符还应与相应证书(如果存在)的密钥标识符相同。 然而,Cryptoki并不强制执行这些关联。(详见第10.6节) 评论。)

请注意,这种关联不是强制的(YMMV),但sane实现是以这种方式进行的

PKCS#11包装中的用法和方法

使用IAIK提供程序(请注意,您需要许可证)来配对公钥和私钥对象。我不知道如何从从获得的证书中获取
CKA\u ID


祝你好运

这里有非常好的例子: