Я разрабатываю сценарий, который будет подписывать документы в формате PDF. Я использую tcpdf и tcpdi. У меня есть секретный ключ .key, фраза-пароль и сертификат .pem. Я использую функцию:
$pdf->setSignature($certificate,$pk,$passphrase);
Когда я открыл свой PDF, Adobe Reader сказал, что мой документ проверенный но нет подписанный….
Кто-нибудь знает почему? И как я могу подписать вместо сертификата?
Благодарю.
Согласно спецификации PDF:
Документ PDF может содержать следующие стандартные типы подписей:
* Одна или несколько подписей одобрения. …
* Не более одной сертификационной подписи (PDF 1.5). Словарь подписи сертификационной подписи является значением поля подписи и должен содержать ByteRange запись. На него также можно ссылаться из DocMDP запись в словаре разрешений (см. 12.8.4, «Разрешения»). Словарь сигнатур должен содержать словарь ссылок на сигнатуру (см. Таблицу 253), который имеет DocMDP метод преобразования. См. 12.8.2.2, «DocMDP» для получения информации о том, как эти подписи должны быть созданы и проверены. Словарь подписи для сертификации или утверждения может также иметь справочный словарь подписи с FieldMDP метод преобразования; см. 12.8.2.4, «FieldMDP».
* Не более двух подписей прав использования (PDF 1.5) ….
То, что Adobe называет ваш PDF сертифицированным, означает, что он специально подписан, имеет подпись MDP.
Других решений пока нет …