как: подписать хеш iTextSharp 5.5, сгенерированный Java iText 5.5 - PullRequest
0 голосов
/ 24 января 2019

Я собираюсь подписать PDF с сайта клиента. Я создам веб-сервис для генерации хеша PDF с использованием itext5.5 (Java), а затем отправлю клиентскому агенту подписать этот хеш (с помощью iTextSharp-5.5) и отправлю обратно подписанный хеш в веб-сервис для закрытия состояние подписи.

Но подписанный PDF получил следующую ошибку при проверке подписи:

Error during signature verification.  
Error encountered while BER decoding:

на стороне сервера (Java):

ExternalDigest externalDigest = new BouncyCastleDigest();

PdfPKCS7 sign = new PdfPKCS7(null, chain, "SHA1", null, externalDigest, false);

        InputStream data = appearance.getRangeStream();

        byte[] digestHash = DigestAlgorithms.digest(data, externalDigest.getMessageDigest(hashAlgorithm));                      

        ocsp = null;

        if (chain.length >= 2 && ocspClient != null) {
            ocsp = ocspClient.getEncoded((X509Certificate)chain[0], (X509Certificate)chain[1], null);
        }

        byte[] sh = sign.getAuthenticatedAttributeBytes(digestHash, signCal, ocsp, crlBytes, SIGN_TYPE);                        
        this.hash = digestHash;
        this.hashForSign = sh;                                  

в C #, я использовал следующий код для подписи:

IExternalSignature es = new X509Certificate2Signature(cert, "SHA1");

byte[] signedHash = es.Sign(hashForSign);

Где this.hashForSign - это хэш, сгенерированный из Java, а signatureHash подписан в C #.

Пожалуйста, помогите!

С наилучшими пожеланиями, Eric

1 Ответ

0 голосов
/ 24 января 2019

У меня была похожая проблема. Это не было проблемой языка Java. Один из способов решить эту проблему - сделать следующее:

  1. Перейти к диспетчеру сертификатов Windows (certmgr.msc)
  2. Попробуйте удалить все сертификаты в разделе Личные
  3. Создайте заново идентификатор в Adobe, используя настройки безопасности.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...