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 явно, что также позволяет детерминированно тестировать границы времени