TPDFlibSignatureVerifier
Sicurezza e firme
Descrizione
Enumera i campi firma del PDF e i firmatari CMS, convalida una firma selezionata senza caricare l'intero PDF in memoria e restituisce la copertura esatta della revisione firmata separatamente dall'integrità crittografica
Il verificatore accetta un file, uno stream di proprietà del chiamante o una stringa di byte ANSI tramite OpenPDF, OpenPDFStream oppure OpenPDFString
Selezione
Count := Verifier.GetSignatureCount;
Verifier.GetSignatureFieldName(0, FieldName);
SignerCount := Verifier.GetSignerCount(0);
Result := Verifier.VerifySignatureByName(FieldName, 0, Report);VerifySignatureByIndex seleziona il campo PDF in base all'indice a base zero, mentre VerifySignatureByName utilizza il nome completo del campo AcroForm; entrambi i metodi accettano un indice del firmatario CMS a base zero
Report di verifica
| IntegrityResult | Risultato di integrità crittografica CMS o PKCS#7 legacy per il firmatario selezionato |
|---|---|
| CoverageStatus | scInvalid, scSignedRevision oppure scWholeDocument |
| ByteRangeValid | True solo quando tutti gli intervalli sono delimitati, il gap Contents è esatto e la revisione firmata termina con il proprio %%EOF |
| ContentsGapValid | True solo quando i byte omessi corrispondono esattamente al token /Contents esadecimale selezionato |
| HasLaterRevisions | True quando la firma selezionata è valida per una revisione incrementale precedente ma esistono byte successivi |
| SignedRevisionLength | Lunghezza in byte della revisione autenticata dalla firma selezionata |
| DocumentLength | Lunghezza in byte attuale del PDF |
| NativeError | Codice di errore di Windows CryptoAPI quando la convalida dell'integrità non riesce |
Metodi di compatibilità
VerifySignature, GetSignatureMetadata, GetSignerCertificate e VerifySignerCertificateChain restano disponibili e selezionano il campo 0 e il firmatario 0
Utilizzare GetSignatureMetadataByIndex, GetSignatureMetadataByName, GetSignerCertificateByIndex, GetSignerCertificateByName, VerifySignerCertificateChainByIndex oppure VerifySignerCertificateChainByName per una selezione esplicita