PDFium Delphi Component Docs

หน่วย FPdfTsa

Unit: FPdfTsa
ไคลเอนต์ timestamp authority ตาม RFC 3161 สำหรับโปรไฟล์ PAdES B-T และ B-LTA พร้อมการสร้างคำขอ การ parse คำตอบ และตัวช่วยส่งคำขอ timestamp โดยตรง

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 implement ฝั่งไคลเอนต์ของ RFC 3161 สำหรับลายเซ็นระยะยาวแบบ PAdES หน่วยนี้ encode ข้อความ TimeStampReq, decode ข้อความ TimeStampResp และมีตัวช่วยครอบที่ทำการแลกเปลี่ยน HTTP ฉบับเต็มกับ URL ของ timestamp authority (TSA)

transport backend เปลี่ยนได้: บน Windows จะใช้ backend ที่อิง WinHttp ใน FPdfTsaWin โดยอัตโนมัติ; PadesTsaAvailable รายงานว่ามี backend ต่ออยู่หรือไม่ และ PadesTsaBackendName ระบุชื่อของมัน

ฟังก์ชันความสะดวกสองตัว ได้แก่ RequestTimestamp และ RequestTimestampDigest จะ hash ค่าลายเซ็น (หรือรับ digest ที่คำนวณไว้แล้ว) สร้างคำขอ ส่งออกไป และ parse คำตอบในการเรียกเดียว พร้อมตรวจ nonce กับ digest

Functions

FunctionDescription
PadesTsaAvailableคืน True เมื่อมี transport backend สำหรับ timestamp บนแพลตฟอร์มปัจจุบัน
PadesTsaBackendNameคืนชื่อที่แสดงของ timestamp backend ที่ใช้งานอยู่
BuildTimeStampReqสร้างข้อความ TimeStampReq จากอินพุต hash ดิบ, OID ของอัลกอริทึม digest, nonce ที่ผู้เรียกเลือก และ flag การร้องขอใบรับรอง
BuildTimeStampReqFromDigestสร้างข้อความ TimeStampReq จาก digest SHA-256 ที่คำนวณไว้แล้ว โดยข้ามขั้นตอน hash ภายใน
ParseTimeStampResp (2 overloads)parse TimeStampResp และตรวจ nonce; overload ตัวที่สองตรวจเพิ่มด้วยว่า digest ที่ถูกประทับ timestamp ตรงกับ ExpectedDigest
ValidateTimeStampTokenตรวจสอบ TimeStampToken แบบ standalone เทียบกับ digest SHA-256 ที่คาดไว้ แล้วคืนข้อมูล timestamp ที่ parse แล้ว
RequestTimestamphash ค่าลายเซ็น ส่งคำขอไปที่ TsaUrl แล้วคืน TPadesTimestamp ที่ผ่านการตรวจแล้ว
RequestTimestampDigestเหมือน RequestTimestamp แต่รับ digest ที่คำนวณไว้แล้วแทนค่าลายเซ็นดิบ

Types

TypeDescription
EPadesTsaexception ที่เกิดจากความล้มเหลวในการ encode, การขนส่ง หรือการตรวจสอบ timestamp
TPadesTimestampเรกคอร์ดที่มีฟิลด์ TokenDer, GenTime, PolicyOid และ Nonce สำหรับ timestamp ที่ได้กลับมา
TPadesTimestampProcsignature ของ callback ที่ใช้แทนการหา timestamp ด้วย digest

Override Variables

VariableDescription
PadesTimestampOverrideTPadesTimestampProc เสริมที่ใช้แทน HTTP backend ของแพลตฟอร์ม
PadesTsaAvailableOverrideตัวแทนค่าความพร้อมใช้ โดย 0 ใช้การตรวจของ backend, 1 บังคับว่าพร้อมใช้ และ -1 บังคับว่าไม่พร้อม

Remarks

See Also

FPdfCms, FPdfCrypto, FPdfTsaWin, FPdfSha256