Я использую тестовый код, включенный в пакет XAdES4j. Я делаю основную окутанную подпись, которая включает элемент < ds: KeyInfo>, но в коде используется объект KeyingDataProvider, который не позволяет мне установить идентификатор , поэтому, когда я создаю DataObjectReference, я не знаю, какой URI установить.Как подписать свойства KeyInfo XAdES4j?
Java исходный код:
Document doc = getTestDocument();
Element elemToSign = doc.getDocumentElement();
SignerEPES signer = (SignerEPES)new XadesEpesSigningProfile(keyingProviderMy, policyInfoProvider).newSigner();
new Enveloped(signer).sign(elemToSign);
Как мой код выглядит следующим образом:
Document doc = getTestDocument();
Element elemToSign = doc.getDocumentElement();
SignerEPES signer = (SignerEPES) new XadesEpesSigningProfile(
keyingProviderMy, policyInfoProvider).newSigner();
DataObjectDesc obj1 = new DataObjectReference(
"http://uri.etsi.org/01903#SignedProperties");
DataObjectDesc obj2 = new DataObjectReference(
"#KeyInfo");
SignedDataObjects dataObjs = new SignedDataObjects()
.withSignedDataObject(obj1).withSignedDataObject(obj2);
signer.sign(dataObjs, elemToSign);
outputDocument(doc, "document.signed.epes.xml");
Что я должен сделать, чтобы подписать KeyInfo?
Также обратите внимание, что вам не нужно вручную добавлять ссылку на элемент с положенными свойствами. Вся цель библиотеки - отвлечь вас от этого материала. Дополнительную информацию см. В вики проекта на GitHub. – lgoncalves