使用JAVA中的pkcs11 Wrappers对XML进行签名

时间:2013-08-29 04:53:16

标签: xml-signature pkcs#11 hsm

我编写了一个使用Java提供的数字签名API签署XMl文件的程序 (即,来自javax.xml.crypto.dsig包的类)。但是要签署一个xml文档,必须提供私钥,以便在指定摘要之前创建签名上下文,如下面的语句所示。

DOMSignContext dsc = new DOMSignContext(priv_key, doc.getDocumentElement());

当我将私钥存储在HSM等安全存储中时,我想签署xml。 我有包装类来访问JAVA中的HSM,所以我可以获得私钥的句柄,但不知道如何使用它进行签名。

任何人都可以指导我如何以这种方式签署XML ......

1 个答案:

答案 0 :(得分:0)

Oracle提供的PKCS#11提供程序支持签名。您当前可能在包装器类中有一个C样式句柄,但这没用多少。句柄必须位于JCA提供程序中,才能与XML签名类一起使用。并且提供者必须由Oracle提供的代码签名证书签名。

要将私钥与PKCS#11提供程序一起使用,请确保PKCS#11令牌中存在具有相同ID的证书。这样,组合的私钥/证书条目将显示在"PKCS11" KeyStore中。您可以使用它来签署XML数据。