PDFium Delphi Component Docs

FPdfTsa unit

Unit: FPdfTsa
Klien timestamp authority RFC 3161 untuk profil PAdES B-T dan B-LTA, dengan pembangunan request, parsing response, dan helper request timestamp langsung

Syntax

TPadesTimestamp = record
  TokenDer: TBytes;
  GenTime: TDateTime;
  PolicyOid: AnsiString;
  Nonce: Int64;
end;

function PadesTsaAvailable: Boolean;
function PadesTsaBackendName: string;
function BuildTimeStampReq(const HashInput: TBytes; DigestOid: AnsiString;
  Nonce: Int64; CertReq: Boolean): TBytes;
function BuildTimeStampReqFromDigest(const Digest: TSHA256Digest;
  DigestOid: AnsiString; Nonce: Int64; CertReq: Boolean): TBytes;
function ParseTimeStampResp(const RespDer: TBytes; ExpectedNonce: Int64;
  out Ts: TPadesTimestamp): Boolean; overload;
function ParseTimeStampResp(const RespDer: TBytes; ExpectedNonce: Int64;
  const ExpectedDigest: TSHA256Digest; out Ts: TPadesTimestamp): Boolean; overload;
function ValidateTimeStampToken(const TokenDer: TBytes;
  const ExpectedDigest: TSHA256Digest; out Ts: TPadesTimestamp): Boolean;
function RequestTimestamp(const TsaUrl: string;
  const SignatureValueOctets: TBytes; Nonce: Int64): TPadesTimestamp;
function RequestTimestampDigest(const TsaUrl: string;
  const Digest: TSHA256Digest; Nonce: Int64): TPadesTimestamp;
TPadesTimestampProc = function(const TsaUrl: string;
  const Digest: TSHA256Digest; Nonce: Int64): TPadesTimestamp;
var PadesTimestampOverride: TPadesTimestampProc;
var PadesTsaAvailableOverride: Integer;

Description

FPdfTsa mengimplementasikan sisi klien RFC 3161 untuk tanda tangan PAdES jangka panjang. Unit ini mengenkode pesan TimeStampReq, mendekode pesan TimeStampResp, dan menawarkan wrapper praktis yang menjalankan pertukaran HTTP penuh terhadap URL timestamp authority (TSA)

Backend transportnya dapat ditukar: di Windows backend FPdfTsaWin berbasis WinHttp dipakai secara otomatis; PadesTsaAvailable melaporkan apakah ada backend yang terpasang dan PadesTsaBackendName menyebutkan namanya

Dua fungsi praktis, RequestTimestamp dan RequestTimestampDigest, meng-hash nilai tanda tangan (atau menerima digest yang sudah dihitung), membangun request, mengirimkannya, dan mem-parse response dalam satu panggilan, sekaligus melakukan verifikasi nonce dan digest

Functions

FunctionDescription
PadesTsaAvailableMengembalikan True ketika backend transport timestamp tersedia di platform saat ini
PadesTsaBackendNameMengembalikan nama tampilan backend timestamp yang aktif
BuildTimeStampReqMembangun pesan TimeStampReq dari masukan hash mentah, OID algoritma digest, nonce pilihan pemanggil, dan flag permintaan sertifikat
BuildTimeStampReqFromDigestMembangun pesan TimeStampReq dari digest SHA-256 yang sudah dihitung, melewati langkah hashing internal
ParseTimeStampResp (2 overloads)Mem-parse TimeStampResp dan memverifikasi nonce; overload kedua tambahan memverifikasi bahwa digest yang diberi timestamp cocok dengan ExpectedDigest
ValidateTimeStampTokenMemvalidasi TimeStampToken mandiri terhadap digest SHA-256 yang diharapkan dan mengembalikan data timestamp hasil parse
RequestTimestampMeng-hash nilai tanda tangan, mengirim request ke TsaUrl, dan mengembalikan TPadesTimestamp yang terverifikasi
RequestTimestampDigestSama dengan RequestTimestamp tetapi menerima digest yang sudah dihitung alih-alih nilai tanda tangan mentah

Types

TypeDescription
EPadesTsaException yang dimunculkan untuk kegagalan encoding timestamp, transport, atau verifikasi
TPadesTimestampRecord dengan field TokenDer, GenTime, PolicyOid, dan Nonce untuk timestamp yang dikembalikan
TPadesTimestampProcSignature callback yang dipakai untuk menggantikan akuisisi timestamp berbasis digest

Override Variables

VariableDescription
PadesTimestampOverrideTPadesTimestampProc opsional yang dipakai sebagai pengganti backend HTTP platform
PadesTsaAvailableOverrideOverride ketersediaan di mana 0 memakai probe backend, 1 memaksa tersedia, dan -1 memaksa tidak tersedia

Remarks

See Also

FPdfCms, FPdfCrypto, FPdfTsaWin, FPdfSha256