диапазон байтов подписи недействителен после включения LTV
Я использую aws cloudHSM и itext7 для подписи PDF. Все нормально, пока я не включаю LTV.
Но после включения LTV появляется ошибка «По крайней мере, одна подпись имеет проблему» и отображается недопустимый диапазон байтов подписи.
1 ответ
В вашей архитектуре у вас есть параметр, в котором вы извлекаете PDF-файл для включения LTV и в котором вы также, в конце концов, возвращаете PDF-файл с результатом с LTV-функцией.
В такой архитектуре необходимо очистить
ByteArrayOutputStream
между извлечением из него исходного содержимого и добавлением к нему нового содержимого.
Следовательно, в вашем случае вы должны очистить его между
ByteArrayInputStream signedPdfInput = new ByteArrayInputStream(((ByteArrayOutputStream)baos).toByteArray());
а также
PdfDocument document = new PdfDocument(pdfReader.setUnethicalReading(true), new PdfWriter(baos),
new StampingProperties().useAppendMode());