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 傳輸是否可用 |
TsaHttpBackendName | Delphi 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 拒絕結果,高階回應解析器會回報時間戳記請求失敗