1

Я пытаюсь использовать API-интерфейс Global Sign Digital Signing Service для подписи документа PDF. Я получил некоторые из их документации. Но я не могу понять их просьбу предоставить "дайджест". Документация предполагает, что я создаю дайджест с помощью SHA256, HEX кодирую его и помещаю его заглавными буквами. Однако я не уверен, что они хотят закодировать. Все, что он говорит, это "Объект", но не то, что входит в объект.

Страница документации:

https://downloads.globalsign.com/acton/media/2674/digital-signing-service-api-documentation#timestamp__digest__get

У них есть две ссылки в их API подписи:

  • / идентичность / {ID} / знак / {переварить}; Подписать хэш: после того как закрытый ключ и сертификат созданы и действительны в течение одного сеанса подписи, их можно использовать для выполнения нескольких операций подписания. Дайджест должен быть в верхнем регистре дайджестом сообщения SHA256 в шестнадцатеричном формате. Возвращенная подпись также будет закодирована в шестнадцатеричном формате.
  • / метка времени / {переварить}; Отметка времени запроса. Этот API-интерфейс предоставляет отметку времени, соответствующую RFC3161, для включения в подпись.

У меня есть полномочия для работы с GlobalSign. Я смог успешно использовать их вызов API "/login". Следующим шагом было использование их API "/timestamp/{digest}". Что идет в дайджесте?

2 ответа2

1

Для того чтобы создать дайджест, вам нужно хэшировать pdf, который вы хотите подписать. Ожидается, что это будет верхний регистр. Вот как я это сделал.

$pdf = file_get_contents("chicken.pdf");
$digest = strtoupper(hash('sha256', $pdf));

Также убедитесь, что ваши заголовки верны. Он должен содержать токен-носитель, полученный от вызова /login:

$headers = array('Authorization: Bearer '. $access_token);

Если вы оставите ненужную информацию в заголовках, вы получите тайм-аут 504.

0

Вы должны выполнить большую часть процесса подписания локально - единственное отличие состоит в том, что вы вызываете API вместо использования локального файла crt/pem/key (или смарт-карты).

Если вы пытаетесь создать подпись, которая была бы видна в приложениях, таких как Adobe Reader (на их панели "Подписи"), вам нужно будет сделать это в соответствии с этими документами:

Первый документ (спецификация PDF) сообщает вам, какие именно байтовые диапазоны включены в дайджест, а также как полученная подпись внедряется обратно в документ PDF.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .