2016-08-19 6 views
0

Ich versuche, eine Datei mit XADES-BES in Android zu unterzeichnen. Ich habe eine Bibliothek darüber gefunden. Erstellen und Erstellen von APK funktioniert gut. Nachdem ich die Datei ausgewählt und auf die Schaltfläche Unterzeichnen geklickt habe, wird ein Laufzeitfehler angezeigt. Nach dem Debugging habe ich festgestellt, dass es einen Fehler über Context gibt. Ich habe einen Kommentar hinzugefügt, wo das Programm abstürzt. Der zugehörige Teil des Codes ist unten:Signieren mit XAdeS-BES in Android

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")); 

ich, nicht Xades4j lib benutzen, weil ich weiß nicht, wie für cades4j lib diesen Code in einer geeigneten Form zu konvertieren.

Antwort

0

Ich weiß nicht, über die Bibliothek, die Sie verwenden, aber in Bezug auf Xades4j können Sie die Dokumentation auf der project wiki folgen. Aus Ihrem Code scheint es ein einfaches Szenario zu sein, das von xades4j unterstützt werden sollte.

+0

Okay, ich werde die Dokumentation sorgfältig lesen und versuchen, meinen Code in xades4j zu konvertieren. Vielen Dank. –