PDFiumPas 文件

ValidatePades 方法

元件: TPdf  ·  單元: PDFium
檢查原始 PDF 來源位元組中的 PAdES 結構,回報結構符合性、分離式 CMS 完整性、憑證繫結與獨立的信任狀態

Syntax

function ValidatePades: TPadesValidationResult;

Description

從原始載入的位元組剖析內嵌簽章字典,檢查其結構是否符合 PAdES baseline,並將簽章位移與用於目錄與 DSS 查閱的展開物件串流檢視分開處理

必要的簽章項目只在最上層字典計數,因此重複的 ContentsByteRangeSubFilterFilterType 鍵無法藉由剖析器挑選的值隱藏,而巢狀字典與陣列中的同名鍵則保持獨立

簽章探索採用線性詞彙掃描,略過串流主體、字串、十六進位值與註解,解碼 #xx 名稱跳脫,且不受巢狀字典出現在簽章項目之前或之後的影響

被排除的 /ByteRange 間距必須等於完整的直接十六進位 /Contents 語彙單元(含其分隔符),且每個被涵蓋的修訂版都必須結束於完整的 PDF 修訂邊界

在 Windows 上,一般的分離式 CMS 簽章會直接對照兩段原始 /ByteRange 區段進行驗證,包括 CMS 簽章屬性、密碼學簽章值,以及 SHA-256 signing-certificate-v2 繫結

每個簽署者還會取得從 CMS 與 X.509 識別碼剖析的演算法設定檔,並依 ISO/TS 32002 檢查支援的 NIST 與 Brainpool 曲線、Ed25519、Ed448、摘要一致性、具名曲線參數與 SHAKE256 輸出長度

Remarks

Example

var
  Res: TPadesValidationResult;
begin
  if not Pdf1.Active then Exit;
  Res := Pdf1.ValidatePades;
  if Res.IsCryptographicallyValid then
    ShowMessage('PAdES signature integrity passed');
end;

See Also

SignPades PadesCryptoAvailable