TPDFlibSignatureVerifier

安全與簽章

描述

列舉 PDF 簽章欄位與 CMS 簽署者,在不將完整 PDF 載入記憶體的情況下驗證所選簽章,並獨立於密碼學完整性之外,分別回報確切的已簽章修訂版涵蓋範圍

驗證器透過 OpenPDFOpenPDFStreamOpenPDFString 接受檔案、呼叫端擁有的資料流或 ANSI 位元組字串

選取

Count := Verifier.GetSignatureCount;
Verifier.GetSignatureFieldName(0, FieldName);
SignerCount := Verifier.GetSignerCount(0);
Result := Verifier.VerifySignatureByName(FieldName, 0, Report);

VerifySignatureByIndex 依以零為基底的索引選取 PDF 欄位,而 VerifySignatureByName 使用完整的 AcroForm 欄位名稱;兩種方法皆接受以零為基底的 CMS 簽署者索引

驗證報告

IntegrityResult所選簽署者的密碼學 CMS 或舊版 PKCS#7 完整性結果
CoverageStatusscInvalidscSignedRevisionscWholeDocument
ByteRangeValid僅當所有範圍皆有界限、Contents 間隙精確且已簽章修訂版終結於其自身的 %%EOF 時為 True
ContentsGapValid僅當省略的位元組恰為所選的十六進位 /Contents 語彙基元時為 True
HasLaterRevisions當所選簽章對先前的累增修訂版有效但存在後續位元組時為 True
SignedRevisionLength由所選簽章驗證之修訂版的位元組長度
DocumentLength目前的 PDF 位元組長度
NativeError完整性驗證失敗時的 Windows CryptoAPI 錯誤碼

相容性方法

VerifySignatureGetSignatureMetadataGetSignerCertificateVerifySignerCertificateChain 仍然可用,並選取欄位 0 與簽署者 0

如需明確選取,請使用 GetSignatureMetadataByIndexGetSignatureMetadataByNameGetSignerCertificateByIndexGetSignerCertificateByNameVerifySignerCertificateChainByIndexVerifySignerCertificateChainByName