TPDFlibSignatureVerifier
安全與簽章
描述
列舉 PDF 簽章欄位與 CMS 簽署者,在不將完整 PDF 載入記憶體的情況下驗證所選簽章,並獨立於密碼學完整性之外,分別回報確切的已簽章修訂版涵蓋範圍
驗證器透過 OpenPDF、OpenPDFStream 或 OpenPDFString 接受檔案、呼叫端擁有的資料流或 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 完整性結果 |
|---|---|
| CoverageStatus | scInvalid、scSignedRevision 或 scWholeDocument |
| ByteRangeValid | 僅當所有範圍皆有界限、Contents 間隙精確且已簽章修訂版終結於其自身的 %%EOF 時為 True |
| ContentsGapValid | 僅當省略的位元組恰為所選的十六進位 /Contents 語彙基元時為 True |
| HasLaterRevisions | 當所選簽章對先前的累增修訂版有效但存在後續位元組時為 True |
| SignedRevisionLength | 由所選簽章驗證之修訂版的位元組長度 |
| DocumentLength | 目前的 PDF 位元組長度 |
| NativeError | 完整性驗證失敗時的 Windows CryptoAPI 錯誤碼 |
相容性方法
VerifySignature、GetSignatureMetadata、GetSignerCertificate 與 VerifySignerCertificateChain 仍然可用,並選取欄位 0 與簽署者 0
如需明確選取,請使用 GetSignatureMetadataByIndex、GetSignatureMetadataByName、GetSignerCertificateByIndex、GetSignerCertificateByName、VerifySignerCertificateChainByIndex 或 VerifySignerCertificateChainByName