PDFium Delphi Component Docs

FPdfTsaFpc-enhet

Unit: FPdfTsaFpc
Free Pascal libcurl-transportbackend för tidsstämplar som POSTar en RFC 3161-begäran till en tidsstämpelmyndighets URL och returnerar svarets bytes

Syntax

const
  TsaMaxResponseBytes = 4 * 1024 * 1024;
  TsaRequestTimeoutSeconds = 30;
  TsaConnectTimeoutSeconds = 30;

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

Description

FPdfTsaFpc är den icke-Windows tidsstempeltransport som FPdfTsa konsumerar, motparten till FPdfTsaWin. Den POSTar en kodad TimeStampReq till en tidsstämpelmyndighets URL över HTTP eller HTTPS och samlar TimeStampResp-bytes; byggandet och tolkningen av DER stannar i FPdfTsa

Transporten är libcurl, bunden vid körning i stället för länkad, så biblioteket är inget byggberoende och dess frånvaro rapporteras i stället för att misslyckas med inläsningen. Att gå via libcurl håller också TLS-stacken utanför denna enhet: libcurl väljer sin egen backend och validerar serverkedjan mot plattformens trust store

TsaHttpAvailable rapporterar huruvida libcurl hittades och de nödvändiga ingångspunkterna löstes upp; TsaHttpBackendName namnger den upplösta backenden; PostTimeStampQuery utför HTTP-utbytet och returnerar False (i stället för att kasta) vid varje transportfel, vilket låter anroparen lägga till egen kontext och återförsökspolicy

Hela interface-sektionen kompileras endast under FPC. Under Delphi är enheten tom, eftersom Delphi riktar sig mot Windows och FPdfTsaWin är backenden där. Enheten kompileras ändå på alla FPC-mål inklusive Windows, där FPdfTsa föredrar WinHttp-backenden och inget anropar denna

Libcurl-handelstyperna, ingångspunktsbindningarna och optionskonstanterna ligger i implementation-sektionen; interfacet exponerar endast tillgänglighetskontrollen, backend-namnet, POST-hjälparen och de tre transportgränserna

Functions

FunctionDescription
TsaHttpAvailableReturnerar True när libcurl hittades och alla nödvändiga ingångspunkter löstes upp vid körning
TsaHttpBackendNameReturnerar namnet på den upplösta backenden, libcurl när transporten är användbar och en tom sträng annars
PostTimeStampQueryPOSTar ReqDer till TsaUrl och fyller RespDer med den råa TimeStampResp-kroppen; returnerar False vid transportfel

Constants

ConstantValueDescription
TsaMaxResponseBytes4 * 1024 * 1024Övre gräns för den accepterade TimeStampResp-kroppen; ett större svar avbryter överföringen i stället för att växa bufferten utan gräns. Hålls synkad med samma konstant i FPdfTsaWin
TsaRequestTimeoutSeconds30Budget för hela begäran i sekunder, matchad mot WinHttp-timeouterna så att en död TSA inte kan hänga en signerartråd på någon av plattformarna
TsaConnectTimeoutSeconds30Uppkopplingsbudget i sekunder, tillämpad före begäranbudgeten

Remarks

See Also

FPdfTsa, FPdfTsaWin, FPdfCms, TPdf.SignPades