PDFium Component Docs

FPdfTsaFpc Moduł

Unit: FPdfTsaFpc
Zaplecze transportu znaczników czasu libcurl we Free Pascal, które wysyła żądanie RFC 3161 metodą POST na URL urzędu znaczników czasu i zwraca bajty odpowiedzi

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 to transport znaczników czasu dla platform spoza Windows, używany przez FPdfTsa jako odpowiednik FPdfTsaWin. Wysyła zakodowane TimeStampReq metodą POST na URL urzędu znaczników czasu przez HTTP lub HTTPS i zbiera bajty TimeStampResp; budowanie i parsowanie DER zostaje w FPdfTsa

Transportem jest libcurl, wiązany w czasie działania zamiast konsolidowany, więc biblioteka nie jest zależnością czasu budowania, a jej brak jest raportowany zamiast wywrócić ładowanie. Przejście przez libcurl trzyma też stos TLS poza tym modułem: libcurl wybiera własne zaplecze i waliduje łańcuch serwera względem platformowego magazynu zaufania

TsaHttpAvailable raportuje, czy libcurl zostało znalezione, a wymagane punkty wejścia rozwiązane; TsaHttpBackendName podaje nazwę rozwiązanego zaplecza; PostTimeStampQuery wykonuje wymianę HTTP i zwraca False (zamiast zgłaszać wyjątek) przy każdej awarii transportu, pozwalając wywołującemu dodać własny kontekst i politykę ponawiania

Cała sekcja interfejsu jest kompilowana wyłącznie pod FPC. Pod Delphi moduł jest pusty, ponieważ Delphi celuje w Windows, a zapleczem jest tam FPdfTsaWin. Moduł nadal kompiluje się na każdym celu FPC, łącznie z Windows, gdzie FPdfTsa przedkłada zaplecze WinHttp i nic nie wywołuje tego modułu

Typy uchwytów libcurl, wiązania punktów wejścia i stałe opcji żyją w sekcji implementation; interfejs udostępnia tylko sprawdzenie dostępności, nazwę zaplecza, pomocnik POST i trzy limity transportu

Functions

FunctionDescription
TsaHttpAvailableZwraca True, gdy libcurl zostało zlokalizowane, a każdy wymagany punkt wejścia rozwiązany w czasie działania
TsaHttpBackendNameZwraca nazwę rozwiązanego zaplecza, libcurl, gdy transport jest użyteczny, i pusty ciąg w przeciwnym razie
PostTimeStampQueryWysyła ReqDer metodą POST na TsaUrl i wypełnia RespDer surową treścią TimeStampResp; zwraca False przy awarii transportu

Constants

ConstantValueDescription
TsaMaxResponseBytes4 * 1024 * 1024Górna granica akceptowanej treści TimeStampResp; większa odpowiedź przerywa transfer zamiast rozrosnąć bufor bez ograniczenia. Trzymana w zgodzie z tą samą stałą w FPdfTsaWin
TsaRequestTimeoutSeconds30Budżet całego żądania w sekundach, dopasowany do limitów WinHttp, aby martwy TSA nie mógł zawiesić wątku podpisującego na żadnej z platform
TsaConnectTimeoutSeconds30Budżet nawiązania połączenia w sekundach, nakładany przed budżetem żądania

Remarks

See Also

FPdfTsa, FPdfTsaWin, FPdfCms, TPdf.SignPades