Firme di certificazione e blocchi dei campi
HotPDF può creare le strutture di permesso PDF allegate alle firme di certificazione e ai blocchi di campi firmati, per poi ispezionare le stesse strutture in un documento caricato
API producer
procedure AddCertificationSignatureField(
const FieldName: AnsiString;
Rectangle: TRect;
Permission: THPDFDocMDPPermission;
ContentsBytes: Integer = 8192;
const SubFilter: AnsiString = 'adbe.pkcs7.detached';
const Reason: AnsiString = '';
const Location: AnsiString = '';
const ContactName: AnsiString = '';
Flags: THPDFFormFieldFlags = []);
procedure ConfigureCertificationSignature(
const FieldName: AnsiString;
Permission: THPDFDocMDPPermission);
procedure AttachSignatureFieldLock(
const FieldName: AnsiString;
Action: THPDFFieldLockAction;
const Fields: array of AnsiString);
AddCertificationSignatureField combina la creazione del segnaposto firmato con la configurazione della certificazione
ConfigureCertificationSignature è destinata a un segnaposto firmato già creato e richiede che quel campo sia il primo campo a portare un dizionario di firma
Un documento può contenere una sola firma di certificazione, quindi una seconda richiesta di configurazione viene rifiutata prima che il grafo degli oggetti venga modificato
Queste API negoziano automaticamente l'uscita PDF 1.5
Livelli di permesso DocMDP
| Valore | Permesso di certificazione |
|---|---|
dmpNoChanges | Nessuna modifica è consentita dopo la certificazione |
dmpFormFillAndSign | Sono consentiti il riempimento dei moduli, la creazione di istanze di modello e la firma |
dmpFormFillSignAndAnnotate | Sono consentite le modifiche precedenti più la creazione, l'eliminazione e la modifica delle annotazioni |
dmpNone è riservato ai risultati di ispezione senza una trasformazione DocMDP e viene rifiutato dai metodi producer
Ambiti del blocco dei campi
| Valore | Argomento Fields | Effetto dopo la firma |
|---|---|---|
flaAll | Deve essere vuoto | Blocca ogni campo del modulo |
flaInclude | Uno o più nomi di campo univoci | Blocca solo i campi elencati |
flaExclude | Uno o più nomi di campo univoci | Blocca ogni campo tranne quelli elencati |
AttachSignatureFieldLock rifiuta nomi vuoti, nomi duplicati, valori di azione non validi, una forma Fields incompatibile, un campo di destinazione non firmato o un campo che porta già un blocco o una politica FieldMDP
Struttura emessa
- La firma di certificazione porta un array diretto
/Referencecontenente un dizionario diretto di riferimento firma DocMDP e parametri di trasformazione diretti - La voce Catalog
/Perms /DocMDPpunta allo stesso dizionario di firma indiretto - La voce del campo
/Lockpunta a un dizionario indiretto/Type /SigFieldLock - L'ambito del blocco viene copiato in un riferimento firma FieldMDP diretto e la sua voce
/Datapunta alla radice Catalog indiretta - Il dizionario di firma contrassegna i riferimenti di trasformazione come critici tramite
/V 1
Esempio in Delphi
var
LockedFields: THPDFAnsiStringArray;
begin
HotPDF.CurrentPage.AddTextField(
'InternalCode', '', Rect(40, 80, 220, 108));
HotPDF.CurrentPage.AddCertificationSignatureField(
'CertSig', Rect(40, 140, 260, 190),
dmpFormFillAndSign, 8192,
'adbe.pkcs7.detached', 'Document approval');
SetLength(LockedFields, 1);
LockedFields[0] := 'InternalCode';
HotPDF.CurrentPage.AttachSignatureFieldLock(
'CertSig', flaInclude, LockedFields);
end;
Ispezione caricata
function GetLoadedSignaturePermissions(
SigIndex: Integer;
out Info: THPDFSignaturePermissionInfo): Boolean;
Il lettore riporta il permesso DocMDP, il collegamento Catalog, l'ambito SigFieldLock, l'ambito FieldMDP, i nomi dei campi, la validità strutturale e una stringa di problema diagnostico
Verifica le forme di oggetti dirette e indirette richieste e conferma che Catalog /Perms /DocMDP punti allo stesso dizionario di firma
Se SigFieldLock e FieldMDP sono entrambi presenti, le loro azioni ed elenchi di campi devono concordare
Il lettore esegue un'ispezione limitata di dizionari e array e non esegue JavaScript, azioni o contenuto di firma
Limite di convalida
GetLoadedSignaturePermissions riporta solo la struttura della politica
VerifyLoadedSignature continua a riportare separatamente l'integrità crittografica
Nessuno dei metodi afferma che ogni successiva revisione incrementale rispetti il permesso DocMDP o FieldMDP riportato, perché ciò richiede un'analisi di cambiamento semantico revisione per revisione
Prestazioni
La convalida del producer scansiona solo i campi AcroForm creati e il piccolo array di riferimenti di firma, mentre l'ispezione caricata legge solo la firma selezionata, il suo blocco, i suoi riferimenti e la voce di permesso Catalog
Nessun contenuto di pagina, flusso di immagine, programma di font o oggetto indiretto non correlato viene decodificato