这是我用来签署XML文档的代码:
KeyingDataProvider kp = new FileSystemKeyStoreKeyingDataProvider(keyStoreType,
keyStorePath, certificateSelector, keyStorePasswordProvider,
entryPasswordProvider, returnFullChain);
XadesSigningProfile p = new XadesBesSigningProfile(kp);
XadesSigner signer = p.newSigner();
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
DocumentBuilder builder = factory.newDocumentBuilder();
docSource = builder.parse(new FileInputStream(pathToXmlFile));
docDest = builder.newDocument();
Node objContent = docDest.importNode(docSource.getDocumentElement(), true);
DataObjectDesc obj = new EnvelopedXmlObject(objContent, "text/xml", null);
new Enveloped(signer).sign(docSource.getDocumentElement());现在,对于同一个XML文件,我需要添加计数器签名。你能给我一些如何做的建议吗?目前我没有任何想法:
我的XML文件如下所示:
<rootElement>
<A>
<A1>
</A1>
</A>
</rootElement>在第一次签名后,我有:
<rootElement>
<A>
<A1>
</A1>
</A>
<ds:Signature>
</ds:Signature>
</rootElement>致以最良好的问候。
发布于 2014-07-06 00:59:40
查看this test上的库源代码。它生成一个包含计数器签名的签名。基本上,您需要定义一个添加CounterSignature属性的SignaturePropertiesProvider,并将其添加到您的签名配置文件中。请注意,CounterSignatureProperty接收另一个签名者,该签名者用于生成计数器签名。
https://stackoverflow.com/questions/24577292
复制相似问题