2016-08-19 7 views
0

Android에서 XADES-BES로 파일에 서명하려고합니다. 나는 그것에 관한 도서관을 발견했다. APK를 만들고 작성하면 문제가 없습니다. 파일을 선택하고 Sign 버튼을 클릭하면 런타임 오류가 발생합니다. 디버깅 후 나는 에 대한 실수가 있음을 발견했습니다. Context. 나는 프로그램이 충돌하는 곳에 코멘트를 추가했다. 코드의 관련 부분은 다음과 같습니다 : 나는 cades4j lib 디렉토리에 적합한 형태로이 코드를 변환하는 방법을 모르기 때문에 내가 Xades4j lib 디렉토리를 사용하지 않은Android에서 XAdeS-BES로 서명

String sourceFilePath = filePathView.getText().toString(); 
       if(sourceFilePath.isEmpty()){ 
        exc = new Exception("No File Picked"); 
        return null; 
       } 
       mAPDUSmartCard.login(pwdText); 
       Pair<CardTerminal,ECertificate> selection = certListAdapter.getSelection(); 
       ECertificate signCert = selection.second; 
       BaseSigner signer = mAPDUSmartCard.getSigner(signCert.asX509Certificate(), Algorithms.SIGNATURE_RSA_SHA256); 
       Context context = new Context(); 
       XMLSignature signature = new XMLSignature(context); // THIS IS WHERE THE APP CRASHES. 
       signature.addDocument(sourceFilePath,"application/xml", false);   
       signature.getSignedInfo().setSignatureMethod(SignatureMethod.RSA_SHA256); 
       signature.addKeyInfo(signCert); 
       signature.sign(signer); 
       signature.write(new FileOutputStream(sourceFilePath + ".xsig")); 

.

답변

0

사용중인 라이브러리에 대해 잘 모르겠지만 xades4j에 관한 내용은 project wiki의 설명서를 참조하십시오. 코드에서 xades4j가 지원해야하는 간단한 시나리오처럼 보입니다.

+0

좋습니다. 설명서를주의 깊게 읽고 코드를 xades4j로 변환 해 보겠습니다. 감사. –