PDFium Delphi Component Docs

יחידת FPdfTsa

Unit: FPdfTsa
לקוח רשות חותמות זמן (TSA) מסוג RFC 3161 עבור הפרופילים PAdES B-T ו-B-LTA, עם בניית בקשות, ניתוח תשובות ופונקציות עזר ישירות לבקשת חותמת זמן

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 מממש את הצד הלקוחי של RFC 3161 עבור חתימות PAdES ארוכות-טווח. הוא מקודד הודעות TimeStampReq, מפענח הודעות TimeStampResp, ומציע עטיפות נוחות שמבצעות את חילופי ה-HTTP המלאים מול כתובת של רשות חותמות זמן (TSA)

עורף התעבורה ניתן להחלפה: ב-Windows עורף FPdfTsaWin מבוסס ה-WinHttp נמצא בשימוש באופן אוטומטי; ‏PadesTsaAvailable מדווח אם עורף כלשהו חובר, ו-PadesTsaBackendName מזהה אותו

שתי פונקציות נוחות, ‏RequestTimestamp ו-RequestTimestampDigest, מחשבות hash של ערך החתימה (או מקבלות digest שחושב מראש), בונות את הבקשה, שולחות אותה ומנתחות את התשובה בקריאה אחת, תוך ביצוע אימות nonce ו-digest

Functions

FunctionDescription
PadesTsaAvailableמחזיר True כאשר עורף תעבורה של חותמות זמן זמין בפלטפורמה הנוכחית
PadesTsaBackendNameמחזיר את שם התצוגה של עורף חותמות הזמן הפעיל
BuildTimeStampReqבונה הודעת TimeStampReq מתוך קלט hash גולמי, OID של אלגוריתם digest, ‏nonce שהקורא בחר ודגל בקשת אישור
BuildTimeStampReqFromDigestבונה הודעת TimeStampReq מתוך digest של SHA-256 שחושב מראש, תוך דילוג על שלב ה-hashing הפנימי
ParseTimeStampResp (2 overloads)מנתח TimeStampResp ומאמת את ה-nonce; ה-overload השני מאמת בנוסף שה-digest שקיבל חותמת זמן תואם את ExpectedDigest
ValidateTimeStampTokenמאמת TimeStampToken עצמאי מול digest‏ SHA-256 צפוי ומחזיר את נתוני חותמת הזמן המנותחים שלו
RequestTimestampמחשב hash של ערך החתימה, שולח את הבקשה אל TsaUrl ומחזיר את TPadesTimestamp המאומת
RequestTimestampDigestזהה ל-RequestTimestamp אך מקבל digest שחושב מראש במקום ערך החתימה הגולמי

Types

TypeDescription
EPadesTsaחריגה שנזרקת עבור כשלי קידוד, תעבורה או אימות של חותמות זמן
TPadesTimestampרשומה עם השדות TokenDer,‏ GenTime,‏ PolicyOid ו-Nonce עבור חותמת הזמן המוחזרת
TPadesTimestampProcחתימת callback שבה משתמשים כדי להחליף את הרכישה של חותמות זמן מבוססת ה-digest

Override Variables

VariableDescription
PadesTimestampOverrideTPadesTimestampProc אופציונלי שמשמש במקום עורף ה-HTTP של הפלטפורמה
PadesTsaAvailableOverrideעקיפת זמינות שבה 0 משתמש בבדיקת העורף, ‏1 כופה זמינות ו--1 כופה אי-זמינות

Remarks

See Also

FPdfCms, FPdfCrypto, FPdfTsaWin, FPdfSha256