SetPAdESSignatureTimeStampToken
Безопасность и подписи
Описание
Валидирует DER-кодированный TimeStampToken RFC 3161 и внедряет его как неподписанный атрибут id-aa-signatureTimeStampToken на выбранном SignerInfo CMS
Метод проверяет подпись токена, требует, чтобы единственное критичное расширенное назначение ключа было timeStamping, при наличии проверяет закодированное имя TSA и сравнивает отпечаток сообщения токена с настроенным дайджестом значения signatureValue подписанта
Существующие атрибуты метки времени подписи у выбранного подписанта заменяются, несвязанные неподписанные атрибуты сохраняются, а пересобранный набор атрибутов сортируется по DER
Синтаксис
Delphi
Function TPDFlib.SetPAdESSignatureTimeStampToken(STSProcessID: Integer;
Const TimeStampTokenDER: AnsiString; SignerIndex: Integer= 0): Integer;
Параметры
| STSProcessID | Значение, возвращаемое одной из функций NewPAdESSignatureTimeStampProcessFrom* |
|---|---|
| TimeStampTokenDER | Полный DER-кодированный TimeStampToken RFC 3161, возвращённый TSA |
| SignerIndex | Индекс подписанта CMS с отсчетом от нуля, по умолчанию первый подписант |
Возвращаемые значения
| 0 | Недопустимый идентификатор процесса |
|---|---|
| 1 | Токен проверен и внедрён |
| 11 | Недопустимы токен, CMS, выбранный подписант, ограничения TSA или отпечаток сообщения |
| Other | Исходный PDF или выбранную подпись не удалось подготовить, как сообщает GetPAdESSignatureTimeStampProcessResult |
Рабочий процесс
- Зарезервируйте достаточно места под содержимое подписи через
SetSignProcessReserveContentsBytesдо создания исходной подписи - Создайте процесс метки времени и выберите поле подписи и алгоритм дайджеста
- Вызовите
GetPAdESSignatureValueHashHexи отправьте этот отпечаток сообщения в TSA - Передайте возвращенный TimeStampToken в этот метод
- Завершите методом
EndPAdESSignatureTimeStampProcessTo*
Библиотека проверяет и переписывает CMS, но HTTP-запрос к TSA не выполняет
См. также
GetPAdESSignatureValueHashHex, SetPAdESSignatureTimeStampDigestAlgorithm, SetSignProcessReserveContentsBytes, TPDFlibSignatureVerifier