Добавить цифровую подпись в PDF-файл, используя Apache PDF Box с существующим pfx-файлом - PullRequest
1 голос
/ 13 марта 2019

Я работаю с добавлением цифровой подписи в формате PDF с использованием JAVA. Я прошел через очень много API для этого. Но я не смог получить ни одного примера для добавления существующего файла pfx непосредственно в pdf.

Я пробовал с Apache PdfBox:

    PDSignature signature = null;
    File file = new File("path\\REPORT.pdf");

    PDDocument doc=PDDocument.load(file);
    FileInputStream pkcs12Stream = new FileInputStream ("path\\abc.pfx");
    KeyStore store = KeyStore.getInstance("PKCS12");
    store.load(pkcs12Stream, "pwd@123".toCharArray());
    PDSignature sign=new PDSignature();
    byte[] bytes =  IOUtils.toByteArray(pkcs12Stream);
    sign.setContents(bytes);
    doc.addSignature(sign); // to add the signature in the pfx file.
    FileOutputStream fos = new FileOutputStream("path\\REPORT_signed.pdf");
    doc.saveIncremental(fos);
    pkcs12Stream.close();

Теперь здесь я не получаю никаких исключений, но он генерирует сжатый подписанный файл, который не будет загружаться из-за нижеприведенного комментария.

 doc.addSignature(sign);

Поскольку он не может конвертировать в байтах, это мое предположение.

Есть ли способ использовать существующий файл pfx и создать подписанный файл pdf.

Пожалуйста, предложите мне это.

...