@ Гаара Отлично! (Я не был уверен на 100%, потому что я не знаю, какие сертификаты Коста-Рики вы используете в качестве якоря доверия в Adobe Reader, так что это все равно могло бы привести к существенной разнице.)
аюсь включить LTV в уже подписанном документе PDF без формата LTV. Я нашел тот же пример во всех случаях, как описано в ссылкахКак включить LTV для подписи метки времени, iText LTV включен - как добавить больше CRL?, который, определяет, какова процедура для получения ожидаемого результата. Бывает, что я не работаю, это не дает мне никакой ошибки, но я не добавляю LTV.
Некоторая идея о том, почему во время выполнения следующего кода не дает мне никакой ошибки, но тем не менее я не добавляю LTV.
Это метод, с помощью которого я пытаюсь добавить LTV:
public void addLtv(String src, String dest, OcspClient ocsp, CrlClient crl, TSAClient tsa)
throws IOException, DocumentException, GeneralSecurityException {
PdfReader r = new PdfReader(src);
FileOutputStream fos = new FileOutputStream(dest);
PdfStamper stp = PdfStamper.createSignature(r, fos, '\0', null, true);
LtvVerification v = stp.getLtvVerification();
AcroFields fields = stp.getAcroFields();
List<String> names = fields.getSignatureNames();
String sigName = names.get(names.size() - 1);
PdfPKCS7 pkcs7 = fields.verifySignature(sigName);
if (pkcs7.isTsp()) {
v.addVerification(sigName, ocsp, crl,
LtvVerification.CertificateOption.SIGNING_CERTIFICATE,
LtvVerification.Level.OCSP_CRL,
LtvVerification.CertificateInclusion.NO);
}
else {
for (String name : names) {
v.addVerification(name, ocsp, crl,
LtvVerification.CertificateOption.WHOLE_CHAIN,
LtvVerification.Level.OCSP_CRL,
LtvVerification.CertificateInclusion.NO);
}
}
PdfSignatureAppearance sap = stp.getSignatureAppearance();
LtvTimestamp.timestamp(sap, tsa, null);
}
версии, с которыми я работаю:
itext: 5.5.11Ява: 8