2016-12-05 2 views
1

XAdES4j 패키지에 포함 된 테스트 코드를 사용하고 있는데 < ds : KeyInfo> 요소를 포함하는 기본 포함 된 서명을 수행하고 있지만이 코드는 ID를 설정할 수없는 KeyingDataProvider 개체를 사용합니다 그래서 DataObjectReference를 만들 때 어떤 URI를 설정할 지 모르겠습니다.KeyInfo 속성 XAdES4j에 서명하는 방법?

자바 원래 코드 :

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에 서명을 어떻게해야합니까?

답변

2

현재 전체 KeyInfo 요소에 서명 할 수있는 방법이 없습니다. 그러나 서명 인증서가 들어있는 X509Certificate 요소에 KeyInfo 내에 서명하도록 xades4j를 설정할 수 있습니다. 이것은 BasicSignatureOptionsProvider을 사용하여 구성됩니다.

+0

노래 속성 요소에 대한 참조를 수동으로 추가 할 필요가 없습니다. 도서관의 모든 목적은이 물건에서 당신을 추론하는 것입니다. 자세한 내용은 GitHub의 프로젝트 위키를 참조하십시오. – lgoncalves

관련 문제