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

IntegrityResultRisultato di integrità crittografica CMS o PKCS#7 legacy per il firmatario selezionato
CoverageStatusscInvalid, scSignedRevision oppure scWholeDocument
ByteRangeValidTrue solo quando tutti gli intervalli sono delimitati, il gap Contents è esatto e la revisione firmata termina con il proprio %%EOF
ContentsGapValidTrue solo quando i byte omessi corrispondono esattamente al token /Contents esadecimale selezionato
HasLaterRevisionsTrue quando la firma selezionata è valida per una revisione incrementale precedente ma esistono byte successivi
SignedRevisionLengthLunghezza in byte della revisione autenticata dalla firma selezionata
DocumentLengthLunghezza in byte attuale del PDF
NativeErrorCodice 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