2

我编写了一个程序来使用 Java 提供的数字签名 API(即 javax.xml.crypto.dsig 包中的类)对 XMl 文件进行签名。但是要签署 xml 文档,必须提供私钥,以创建签名上下文,然后再指定如下语句中的摘要。

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

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

谁能指导我如何以这种方式签署 XML...

4

1 回答 1

0

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

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

于 2013-08-31T21:09:34.493 回答