PDFium Component Docs

FPdfTsaFpc unit

Unit: FPdfTsaFpc
Free Pascal-libcurl-transportbackend voor timestamps dat een RFC 3161-verzoek naar de URL van een timestamp authority stuurt en de response-bytes teruggeeft

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 is het timestamptransport voor niet-Windows dat door FPdfTsa wordt gebruikt, de tegenhanger van FPdfTsaWin. Het stuurt een gecodeerde TimeStampReq via POST naar de URL van een timestamp authority over HTTP of HTTPS en verzamelt de TimeStampResp-bytes; het bouwen en parsen van de DER blijft in FPdfTsa

Het transport is libcurl, tijdens runtime gebonden in plaats van gekoppeld, dus de bibliotheek is geen bouwtijdafhankelijkheid en de afwezigheid wordt gemeld in plaats van dat het laden mislukt. De route via libcurl houdt ook de TLS-stack buiten deze unit: libcurl kiest zijn eigen backend en valideert de serverketen tegen de platform-truststore

TsaHttpAvailable rapporteert of libcurl is gevonden en de vereiste entry points zijn opgezocht; TsaHttpBackendName noemt de opgezochte backend; PostTimeStampQuery verricht de HTTP-uitwisseling en geeft False terug (in plaats van een exceptie) bij elke transportfout, zodat de aanroeper zijn eigen context en hernieuwingsbeleid kan toevoegen

De hele interfacedeel wordt alleen onder FPC gecompileerd. Onder Delphi is de unit leeg, omdat Delphi zich op Windows richt en FPdfTsaWin daar de backend is. De unit compileert nog steeds op elk FPC-doel, inclusief Windows, waar FPdfTsa de voorkeur geeft aan de WinHttp-backend en niets in deze unit terechtkomt

De libcurl-handletypes, de entry-point-bindingen en de optieconstanten zitten in de implementatiedeel; de interface legt alleen de beschikbaarheidscontrole, de backendnaam, de post-hulpfunctie en de drie transportlimieten bloot

Functions

FunctionDescription
TsaHttpAvailableGeeft True terug wanneer libcurl is gevonden en elk vereist entry point tijdens runtime is opgezocht
TsaHttpBackendNameGeeft de naam van de opgezochte backend terug, libcurl wanneer het transport bruikbaar is en anders een lege string
PostTimeStampQueryVerstuurt ReqDer via POST naar TsaUrl en vult RespDer met de ruwe TimeStampResp-body; geeft False terug bij een transportfout

Constants

ConstantValueDescription
TsaMaxResponseBytes4 * 1024 * 1024Bovengrens voor de geaccepteerde TimeStampResp-body; een grotere response breekt de overdracht af in plaats van de buffer onbeperkt te laten groeien. Wordt gelijk gehouden met dezelfde constante in FPdfTsaWin
TsaRequestTimeoutSeconds30Budget voor het hele verzoek in seconden, gelijk aan de WinHttp-timeouts, zodat een dode TSA geen ondertekeningsthread op geen enkel platform kan laten vastlopen
TsaConnectTimeoutSeconds30Verbindingsbudget in seconden, van kracht vóór het verzoekbudget

Remarks

See Also

FPdfTsa, FPdfTsaWin, FPdfCms, TPdf.SignPades