Подписание с помощью XAdeS-BES в Android

Я пытаюсь подписать файл с помощью XADES-BES в Android. Я нашел библиотеку об этом. Сборка и создание APK работает нормально. После того, как я выбираю файл и нажимаю кнопку «Подписать», он выдает ошибку времени выполнения. После отладки я обнаружил ошибку в Context. Я добавил комментарий, где программа вылетает. Соответствующая часть кода приведена ниже:

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

Я не использовал Xades4j lib, так как не знаю, как преобразовать этот код в подходящий вид для cades4j lib.


person Sefa Katirci    schedule 19.08.2016    source источник


Ответы (1)


Я не знаю, какую библиотеку вы используете, но что касается xades4j, вы можете ознакомиться с документацией на вики проекта. Судя по вашему коду, это простой сценарий, который должен поддерживаться xades4j.

person lgoncalves    schedule 21.08.2016
comment
Хорошо, я внимательно прочитаю документацию и попробую преобразовать свой код в xades4j. Спасибо. - person Sefa Katirci; 22.08.2016