function TsaHttpAvailable: Boolean;
function TsaHttpBackendName: string;
function PostTimeStampQuery(const TsaUrl: string; const ReqDer: TBytes; out RespDer: TBytes): Boolean;
FPdfTsa 在 Delphi POSIX 平台选择此传输,使用 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 响应、检查请求的 imprint 与 nonce,并提取 token。PAdES 信任验证会分别验证原始 token 的 CMS 签名、证书链、吊销证据和时间戳角色
2xx 响应也可能包含 TSA 的 DER 拒绝结果,上层响应解析器会将其报告为时间戳请求失败