PDFium Delphi Component Docs

Модуль FPdfCryptoOcsp

Модуль: FPdfCryptoOcsp
Ограниченные проверки OCSP DER и свежести, общие для бэкендов проверки OpenSSL и нативной macOS

Syntax

function FreshOcspResponse(const Der: TBytes; UtcNow: TDateTime): Boolean;
function CryptoUtcNow: TDateTime;

Функции

ФункцияОписание
FreshOcspResponseВозвращает True только когда Der содержит ограниченную успешную базовую структуру ответа OCSP и каждая включённая реакция проходит проверки свежести относительно UtcNow; это префильтр, который никогда не аутентифицирует доказательства
CryptoUtcNowВозвращает текущее UTC TDateTime, используя платформенное преобразование часовых поясов, а не трактуя локальное время как UTC

Границы и свежесть

ПроверкаЛимит или поведение
Размер ответа DERНепустой и не более 1 МиБ
Записи SingleResponseХотя бы одна, с жёстким лимитом 64
Рассинхронизация часов300 секунд для сравнений «в будущем» и «истекает»
producedAt и thisUpdateВозраст не более одного дня и без выхода за допустимое отклонение в будущее
nextUpdateЕсли присутствует, не может предшествовать thisUpdate и должен оставаться действительным в пределах допустимого отклонения
Искажённый или неподдерживаемый ответВозвращает False, включая неуспешный внешний ответ OCSP или неподдерживаемый тип ответа

Аутентификация по-прежнему обязательна

Результат True лишь разрешает нативному верификатору изучить ответ. Он не доказывает подпись ответчика, полномочия ответчика, совпадение издателя, идентификатор сертификата или положительный статус сертификата

FPdfCryptoSsl аутентифицирует OCSP через OpenSSL, а FPdfCryptoMac — переданные ответы через Security.framework. Приложения должны смотреть независимые результаты подписи, доверия и отзыва, а не использовать FreshOcspResponse как вердикт об отзыве

Помощник не выполняет HTTP-запросов, не добавляет якорей доверия, не меняет системное доверие и не использует постоянный кеш. Вызывающий передаёт UTC явно, что также позволяет детерминированно тестировать границы времени

См. также

FPdfCrypto, FPdfCryptoSsl, FPdfCryptoMac, FPdfAsn1