2016-08-19 14 views
0

AndroidでXADES-BESでファイルに署名しようとしています。私はそれについての図書館を見つけました。 APKの作成と作成はうまくいきます。ファイルを選択してSignボタンをクリックすると、ランタイムエラーが発生します。デバッグ後に、私はの文脈での間違いがあることがわかりました。プログラムがクラッシュする箇所にコメントを追加しました。コードの関連部分は以下の通りです: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")); 

私はcades4j libに適した形で、このコードを変換する方法がわからないので、私は、Xades4j libには使用しませんでした。

答えて

0

あなたが使用しているライブラリについてはわかりませんが、xades4jに関しては、project wikiのドキュメントに従うことができます。あなたのコードからは、xades4jがサポートしなければならない単純なシナリオのようです。

+0

さて、ドキュメントを慎重に読み、コードをxades4jに変換しようとします。ありがとう。 –

関連する問題