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,因此也能進行可重現的時間邊界測試