Как создать PADES с использованием автономной подписи и ответа OCSP
Я в тупике, пытаясь выяснить Java-пакет Esig DSS только из документации и источника. (eu.europa.esig.dss.* дерево)
Мы подключаемся к шведскому 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 ответ
Расширенная цифровая подпись, предоставленная третьей системой, не может использоваться для создания действительного подписанного 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.