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
dmpNoChangesNessuna modifica è consentita dopo la certificazione
dmpFormFillAndSignSono consentiti il riempimento dei moduli, la creazione di istanze di modello e la firma
dmpFormFillSignAndAnnotateSono 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
flaAllDeve essere vuotoBlocca ogni campo del modulo
flaIncludeUno o più nomi di campo univociBlocca solo i campi elencati
flaExcludeUno o più nomi di campo univociBlocca 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

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

Vedi anche