Это мой код для подписи 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>
С наилучшими пожеланиями Джон С.