TPDFlibSignatureVerifier

セキュリティと署名

説明

PDF 署名フィールドと CMS 署名者を列挙し、PDF 全体をメモリに読み込むことなく選択した署名を検証します。また、暗号学的な完全性とは別に、署名されたリビジョンの厳密なカバレッジを報告します。

検証側は、OpenPDFOpenPDFStream、または OpenPDFString を介して、ファイル、呼び出し側が所有するストリーム、または ANSI バイト文字列を受け取ります。

選択

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

VerifySignatureByIndex は 0 から始まるインデックスで PDF フィールドを選択し、VerifySignatureByName は完全修飾 AcroForm フィールド名を使用します。どちらのメソッドも 0 から始まる CMS 署名者インデックスを受け取ります。

検証レポート

IntegrityResult選択した署名者に対する、暗号学的 CMS またはレガシー PKCS#7 の完全性結果
CoverageStatusscInvalidscSignedRevision、または scWholeDocument
ByteRangeValidすべての範囲が境界付けられ、Contents のギャップが正確で、署名されたリビジョンが自身の %%EOF で終わる場合にのみ True になります
ContentsGapValid省略されたバイトが、選択された 16 進数の /Contents トークンそのものである場合にのみ True になります
HasLaterRevisions選択した署名がより前の差分リビジョンに対しては有効だが、より後のバイトが存在する場合に True になります
SignedRevisionLength選択した署名によって認証されたリビジョンのバイト長
DocumentLength現在の PDF のバイト長
NativeError完全性の検証に失敗した場合の Windows CryptoAPI エラーコード

互換性メソッド

VerifySignatureGetSignatureMetadataGetSignerCertificateVerifySignerCertificateChain は引き続き使用可能で、フィールド 0 と署名者 0 を選択します

明示的に選択するには、GetSignatureMetadataByIndexGetSignatureMetadataByNameGetSignerCertificateByIndexGetSignerCertificateByNameVerifySignerCertificateChainByIndex、または VerifySignerCertificateChainByName を使用してください