PDFium Delphi Component Docs

FPdfCryptoOcsp 单元

单元:FPdfCryptoOcsp
OpenSSL 与原生 macOS 验证后端共用的 OCSP DER 和时效检查,带明确的资源上限

语法

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

函数

函数说明
FreshOcspResponse只有 Der 包含大小受限、状态成功的基本 OCSP 响应结构,且所有响应条目均通过基于 UtcNow 的时效检查时才返回 True;这只是预过滤,不会验证证据的真实性
CryptoUtcNow通过平台时区转换返回当前 UTC TDateTime,不会把本地时间当作 UTC

上限与时效

检查项限制或行为
DER 响应大小不能为空,且最多 1 MiB
SingleResponse 条目至少一个,硬上限为 64
时钟偏差未来时间或过期比较允许 300 秒偏差
producedAt 和 thisUpdate距当前时间最多一天,且不得超过允许的未来偏差
nextUpdate存在时不得早于 thisUpdate,并须在允许偏差范围内仍然有效
格式错误或不支持的响应返回 False,包括外层 OCSP 响应失败或响应类型不受支持的情况

仍须验证真实性

True 结果只允许原生验证器继续检查响应,不能证明响应者签名、响应者权限、颁发者匹配、证书标识或证书状态为正常

FPdfCryptoSsl 通过 OpenSSL 验证 OCSP,FPdfCryptoMac 通过 Security.framework 验证传入的响应;应用应分别检查签名、信任和吊销结果,不能把 FreshOcspResponse 当作吊销判定

该辅助函数不发送 HTTP 请求,不添加信任锚,不修改系统信任,也不使用持久缓存;调用方明确传入 UTC,因此时间边界测试可以保持确定性

另请参阅

FPdfCrypto, FPdfCryptoSsl, FPdfCryptoMac, FPdfAsn1