TPDFlibSignatureVerifier
Bezpieczeństwo i podpisy
Opis
Wylicza pola podpisów PDF i sygnatariuszy CMS, weryfikuje wybrany podpis bez wczytywania całego pliku PDF do pamięci i raportuje dokładny zakres podpisanej rewizji oddzielnie od integralności kryptograficznej
Weryfikator akceptuje plik, strumień należący do wywołującego lub ciąg bajtów ANSI za pośrednictwem OpenPDF, OpenPDFStream lub OpenPDFString
Wybór
Count := Verifier.GetSignatureCount;
Verifier.GetSignatureFieldName(0, FieldName);
SignerCount := Verifier.GetSignerCount(0);
Result := Verifier.VerifySignatureByName(FieldName, 0, Report);VerifySignatureByIndex wybiera pole PDF według indeksu liczonego od zera, natomiast VerifySignatureByName używa w pełni kwalifikowanej nazwy pola AcroForm — obie metody przyjmują indeks sygnatariusza CMS liczony od zera
Raport weryfikacji
| IntegrityResult | Wynik integralności kryptograficznej CMS lub starszej PKCS#7 dla wybranego sygnatariusza |
|---|---|
| CoverageStatus | scInvalid, scSignedRevision lub scWholeDocument |
| ByteRangeValid | Prawda tylko wtedy, gdy wszystkie zakresy mają ograniczenia, luka Contents jest dokładna, a podpisana rewizja kończy się własnym znacznikiem %%EOF |
| ContentsGapValid | Prawda tylko wtedy, gdy pominięte bajty stanowią dokładnie wybrany token szesnastkowy /Contents |
| HasLaterRevisions | Prawda, gdy wybrany podpis jest ważny dla wcześniejszej rewizji przyrostowej, ale istnieją późniejsze bajty |
| SignedRevisionLength | Długość w bajtach rewizji uwierzytelnionej przez wybrany podpis |
| DocumentLength | Bieżąca długość pliku PDF w bajtach |
| NativeError | Kod błędu Windows CryptoAPI w przypadku niepowodzenia weryfikacji integralności |
Metody zgodności
VerifySignature, GetSignatureMetadata, GetSignerCertificate i VerifySignerCertificateChain pozostają dostępne i wybierają pole 0 oraz sygnatariusza 0
W celu jawnego wyboru należy użyć GetSignatureMetadataByIndex, GetSignatureMetadataByName, GetSignerCertificateByIndex, GetSignerCertificateByName, VerifySignerCertificateChainByIndex lub VerifySignerCertificateChainByName