TPDFlibSignatureVerifier
Seguridad y firmas
Descripción
Enumera los campos de firma del PDF y los firmantes CMS, valida una firma seleccionada sin cargar el PDF completo en memoria y reporta la cobertura exacta de la revisión firmada de forma separada respecto a la integridad criptográfica
El verificador acepta un archivo, un flujo de datos propiedad del llamador o una cadena de bytes ANSI a través de OpenPDF, OpenPDFStream o OpenPDFString
Selección
Count := Verifier.GetSignatureCount;
Verifier.GetSignatureFieldName(0, FieldName);
SignerCount := Verifier.GetSignerCount(0);
Result := Verifier.VerifySignatureByName(FieldName, 0, Report);VerifySignatureByIndex selecciona el campo del PDF mediante un índice de base cero, mientras que VerifySignatureByName utiliza el nombre completo del campo AcroForm; ambos métodos aceptan un índice de firmante CMS de base cero
Informe de verificación
| IntegrityResult | Resultado de integridad criptográfica CMS o PKCS#7 heredado para el firmante seleccionado |
|---|---|
| CoverageStatus | scInvalid, scSignedRevision o scWholeDocument |
| ByteRangeValid | Verdadero únicamente cuando todos los rangos están acotados, el hueco de Contents es exacto y la revisión firmada termina en su propio %%EOF |
| ContentsGapValid | Verdadero únicamente cuando los bytes omitidos son exactamente el token hexadecimal /Contents seleccionado |
| HasLaterRevisions | Verdadero cuando la firma seleccionada es válida para una revisión incremental anterior pero existen bytes posteriores |
| SignedRevisionLength | Longitud en bytes de la revisión autenticada por la firma seleccionada |
| DocumentLength | Longitud actual del PDF en bytes |
| NativeError | Código de error de Windows CryptoAPI cuando falla la validación de integridad |
Métodos de compatibilidad
VerifySignature, GetSignatureMetadata, GetSignerCertificate y VerifySignerCertificateChain siguen disponibles y seleccionan el campo 0 y el firmante 0
Utiliza GetSignatureMetadataByIndex, GetSignatureMetadataByName, GetSignerCertificateByIndex, GetSignerCertificateByName, VerifySignerCertificateChainByIndex o VerifySignerCertificateChainByName para una selección explícita