PDFium Delphi Component Docs

FPdfTsaPosix 單元

單元:FPdfTsaPosix
原生 Delphi POSIX HTTP 傳輸,用於 RFC 3161 時間戳記請求

語法

function TsaHttpAvailable: Boolean;
function TsaHttpBackendName: string;
function PostTimeStampQuery(const TsaUrl: string; const ReqDer: TBytes; out RespDer: TBytes): Boolean;

說明

FPdfTsa 在 POSIX 平台的 Delphi 上選擇此傳輸。實作使用 System.Net.HttpClient 發出實際 HTTP 或 HTTPS POST,並帶有 Content-Type: application/timestamp-query 與 Accept: application/timestamp-reply

此介面在 Windows 轉交 FPdfTsaWin,原生 Free Pascal 則轉交 FPdfTsaFpc;這些分支讓較舊的 Windows Delphi 套件不必依賴 POSIX HTTP 實作

傳輸可用性描述選定 HTTP 後端,不代表 TSA 可連線、簽署者憑證受信任或時間戳記有效

函式

函式說明
TsaHttpAvailable回報選定平台的 HTTP 傳輸是否可用
TsaHttpBackendNameDelphi POSIX 傳回 System.Net.HttpClient,或傳回轉交的 Windows/Free Pascal 傳輸所回報的名稱
PostTimeStampQuery將呼叫端 DER 查詢 POST 至 TsaUrl,接受非空且符合上限的 2xx 回應,並於 RespDer 傳回位元組;請求失敗時清空輸出並傳回 False

上限與驗證

Delphi 傳輸將請求與回應本文限制為 4 MiB,URL 限制為 8192 個字串碼元。僅接受 HTTP 與 HTTPS URL,並停用重新導向

連線、傳送與回應逾時均設為 30000 毫秒。期限 Worker 在整體 30000 毫秒預算耗盡後,要求取消原生 HTTP 請求;有上限的回應串流寫入與完成後的回應檢查,也會拒絕超出經過時間預算的結果。原生請求取消多久才生效,由作業系統 HTTP 實作控制

HTTPS 保留平台憑證與主機名稱檢查。POST 成功只代表傳輸成功:FPdfTsa 仍須解析 RFC 3161 回應、檢查要求的訊息摘要與 Nonce,並擷取權杖。PAdES 信任驗證另行檢查原始權杖的 CMS 簽章、憑證鏈、撤銷證據與時間戳記角色

2xx 回應也可能包含 TSA 的 DER 拒絕結果,高階回應解析器會回報時間戳記請求失敗

另請參閱

FPdfTsa, FPdfTsaFpc, FPdfTsaWin, TPdf.ValidatePadesTrust