Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Нколай  
#1 Оставлено : 11 декабря 2024 г. 11:01:59(UTC)
Нколай

Статус: Новичок

Группы: Участники
Зарегистрирован: 09.12.2024(UTC)
Сообщений: 2
Российская Федерация

Добрый день.

Используем библиотеку JSP версии 5.0.46605-A-e80230f4 где используется itext 5.5.13.3

PDF файл подписывается, не при проверке подписи AcroFields.verifySignature(signature);

вот метод верификации подписи на PDF файле.
Код:

 private static void verifyPdfSignature(byte[] signedFile) throws IOException, GeneralSecurityException {
        final PdfReader pdfReader = new PdfReader(signedFile);
        final AcroFields acroFields = pdfReader.getAcroFields();

        final String signature = acroFields.getSignatureNames().stream()
                .filter(acroFields::signatureCoversWholeDocument)
                .findFirst()
                .orElseThrow(() -> new VerifySignatureException(String.format(
                        Constants.ErrorMessages.SIGNATURE_IS_MISSING)));

        final PdfPKCS7 pkcs7 = acroFields.verifySignature(signature);
        final String reason = pkcs7.getReason();
        final Calendar signedAt = pkcs7.getSignDate();
        final X509Certificate signingCertificate = pkcs7.getSigningCertificate();
        final Principal issuerDN = signingCertificate.getIssuerDN();
        final Principal subjectDN = signingCertificate.getSubjectDN();

        if (!pkcs7.verify()) {
            log.error("valid = {}, date = {}, reason = '{}', issuer = '{}', subject = '{}'",
                    false, signedAt.getTime(), reason, issuerDN, subjectDN);
            throw new VerifySignatureException(String.format(
                    Constants.ErrorMessages.VERIFY_SIGNATURE_ERROR, pkcs7.getSignName()));
        }
    }




На 223 строке класс PdfPKCS7
Цитата:

ASN1Sequence content = (ASN1Sequence)((ASN1TaggedObject)signedData.getObjectAt(1)).getBaseObject();

получаем ошибку
Цитата:

nested exception is java.lang.NoSuchMethodError: 'org.bouncycastle.asn1.ASN1Object org.bouncycastle.asn1.ASN1TaggedObject.getBaseObject()


Посмотрел класс, там такого метода getBaseObject() - нет, но есть метод getObject().

Посмотрел патч в вашем архиве и там метод getObject() заменен getBaseObject().

Помогите разобраться с проблемой.

Offline Нколай  
#2 Оставлено : 11 декабря 2024 г. 12:55:11(UTC)
Нколай

Статус: Новичок

Группы: Участники
Зарегистрирован: 09.12.2024(UTC)
Сообщений: 2
Российская Федерация

Разобрался в проблеме.

spring-cloud-starter-config 3.1.1 подтягивал зависимости

bcpkix-jdk15on v 1.68
bcprov-jdk18on v 1.68

Исключение этих зависимостей помогло решить проблему.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.