Как создать PADES с использованием автономной подписи и ответа OCSP - PullRequest
0 голосов
/ 11 сентября 2018

Я в тупике, пытаясь выяснить Java-пакет Esig DSS только из документации и источника.(eu.europa.esig.dss. * tree)

Мы подключаемся к шведскому BankID, чтобы подписывать PDF и простые простые тексты.Ответ представляет собой SOAP XML с полями для подписи и ответа OCSP.

Конечная цель состоит в том, чтобы объединить эти две части в один объект «допустимая подпись», который можно встроить в PDF (используя DSS иPDFbox).

Содержимое полей BankID Soap, похоже, имеет правильный формат для инструментов DSS:

Подпись может быть загружена с помощью

DSSDocument sigDoc = new InMemoryDocument(xmlSignature)
SignedDocumentValidator documentValidator = SignedDocumentValidator.fromDocument(sigDoc);
// ...
AdvancedSignature advancedSignature = documentValidator.getSignatures().get(0);

и OCSPОтвет можно прочитать с помощью

ExternalResourcesOCSPSource source = new ExternalResourcesOCSPSource(ocspBytes);
BasicOCSPResp basicOCSPResp = source.getContainedOCSPResponses().get(0);

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

Вопрос: Как получить действительный OCSPTokenиз ExternalResourcesOCSPSource?

Я продолжаю бегать кругами, пытаясь объединить их в одну AdvancedSignature (если это то, что я могу использовать для встраивания в PDF).

1 Ответ

0 голосов
/ 12 сентября 2018

Расширенная цифровая подпись, предоставляемая третьей системой, не может использоваться для создания действительного подписанного PDF

Подпись PAdES всегда включается в документ PDF, поэтому служба подписи не может возвращать отдельную подпись PAdES, которая в DSS считается действительной.

Вероятно, он обеспечивает отдельную подпись CAdES или XAdES в сообщении SOAP, которое может обрабатываться DSS (DSS предоставляет API высокого уровня для подписи документов с использованием форматов XAdES, CAdES, PAdES и aSiCS).

Оба формата поддерживают встраивание ответов OCSP, но для этого также необходимо добавить метку времени, что усложнит построение окончательного формата. Это может быть причиной использования настраиваемого поля в сообщении SOAP для возврата ответа OCSP

XAdES и PAdES концептуально похожи, но структурно различны. Подпись XAdES является XML, а PAdES - двоичным. Подпись XML не может быть преобразована в PAdES

PAdES и CAdES используют CMS, оба являются двоичными и используют синтаксис ASN.1. Но подписанное сообщение отличается, подпись CAdES рассчитывается для всего документа (и некоторых других атрибутов), а PAdes использует определенные данные документа PDF. Поэтому подпись cades также не может быть преобразована в PAdes.

...