TPDFlibSignatureVerifier

Безопасность и подписи

Описание

Перечисляет поля подписей PDF и подписывающих сторон CMS, проверяет выбранную подпись без загрузки всего PDF в память и отдельно от криптографической целостности сообщает точный охват подписанной ревизии

Проверяющий принимает файл, поток, принадлежащий вызывающей стороне, или строку ANSI-байтов через OpenPDF, OpenPDFStream или OpenPDFString

Выбор

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 для выбранного подписанта
CoverageStatusscInvalid, scSignedRevision или scWholeDocument
ByteRangeValidTrue только если все диапазоны ограничены, пропуск Contents является точным, а подписанная ревизия завершается собственным %%EOF
ContentsGapValidTrue только если пропущенные байты в точности совпадают с выбранным шестнадцатеричным токеном /Contents
HasLaterRevisionsTrue, если выбранная подпись действительна для более ранней инкрементной ревизии, но существуют более поздние байты
SignedRevisionLengthДлина в байтах ревизии, аутентифицированной выбранной подписью
DocumentLengthТекущая длина PDF в байтах
NativeErrorКод ошибки Windows CryptoAPI при сбое проверки целостности

Методы совместимости

VerifySignature, GetSignatureMetadata, GetSignerCertificate и VerifySignerCertificateChain остаются доступными и выбирают поле 0 и подписанта 0

Используйте GetSignatureMetadataByIndex, GetSignatureMetadataByName, GetSignerCertificateByIndex, GetSignerCertificateByName, VerifySignerCertificateChainByIndex или VerifySignerCertificateChainByName для явного выбора