Sertifikaattiallekirjoitukset ja kenttälukot

HotPDF voi laatia sertifikaattiallekirjoituksiin ja allekirjoitettuihin kenttälukkoihin liitetyt PDF-oikeusrakenteet ja tarkastaa samat rakenteet ladatussa dokumentissa

Tuottajan API

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 yhdistää allekirjoitetun paikan luomisen sertifikaattimäärittelyyn

ConfigureCertificationSignature on olemassa olevalle laaditulle allekirjoitetulle paikalle, ja se vaatii, että kyseinen kenttä on ensimmäinen allekirjoitussanakirjaa kantava kenttä

Dokumentti voi sisältää vain yhden sertifikaattiallekirjoituksen, joten toinen määrittelypyyntö hylätään ennen oliograafin muuttamista

Nämä API:t neuvottelevat PDF 1.5 -tulosteen automaattisesti

DocMDP-oikeustasot

Arvo Sertifikaattioikeus
dmpNoChangesSertifioinnin jälkeen muutoksia ei sallita
dmpFormFillAndSignLomakkeen täyttö, mallin instantiointi ja allekirjoittaminen sallitaan
dmpFormFillSignAndAnnotateEdellisten muutosten lisäksi huomautusten luominen, poistaminen ja muokkaaminen sallitaan

dmpNone on varattu tarkastustuloksille ilman DocMDP-muunnosta, ja tuottajametodit hylkäävät sen

Kenttälukon laajuudet

Arvo Fields-argumentti Vaikutus allekirjoituksen jälkeen
flaAllTäytyy olla tyhjäLukitsee kaikki lomakekentät
flaIncludeYksi tai useampi yksilöllinen kentän nimiLukitsee vain luetellut kentät
flaExcludeYksi tai useampi yksilöllinen kentän nimiLukitsee kaikki kentät lukuun ottamatta lueteltuja

AttachSignatureFieldLock hylkää tyhjät nimet, kaksoiskappaleet nimistä, virheelliset toimintoarvot, yhteensopimattoman Fields-muodon, allekirjoittamattoman kohdekentän tai kentän, jolla on jo lukko tai FieldMDP-käytäntö

Tuotettu rakenne

Delphi-esimerkki

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;

Ladattu tarkastus

function GetLoadedSignaturePermissions(
  SigIndex: Integer;
  out Info: THPDFSignaturePermissionInfo): Boolean;

Lukija raportoi DocMDP-oikeuden, Catalog-kytkennän, SigFieldLock-laajuuden, FieldMDP-laajuuden, kenttien nimet, rakenteellisen kelvollisuuden ja diagnostiikkaongelma-merkkijonon

Se vahvistaa vaaditut suorat ja epäsuorat oliomuodot ja varmistaa, että Catalogin /Perms /DocMDP osoittaa samaan allekirjoitussanakirjaan

Jos sekä SigFieldLock että FieldMDP ovat läsnä, niiden toimintojen ja kenttäluiden on oltava yhtenevät

Lukija suorittaa rajoitetun sanakirja- ja taulukkotarkastuksen, eikä se suorita JavaScriptiä, toimintoja tai allekirjoitussisältöä

Validointiraja

GetLoadedSignaturePermissions raportoi vain käytäntörakenteen

VerifyLoadedSignature jatkaa kryptografisen eheyden raportointia erikseen

Kumpikaan metodi ei väitä, että jokainen myöhempi inkrementaaliversio noudattaisi raportoitua DocMDP- tai FieldMDP-oikeutta, sillä se vaatii versiokohtaista semanttisen muutoksen analyysiä

Suorituskyky

Tuottajan validointi skannaa vain laaditut AcroForm-kentät ja pienen allekirjoitusviitetaulukon, kun taas ladattu tarkastus lukee vain valitun allekirjoituksen, sen lukon, sen viitteet ja Catalogin oikeusalkion

Yhtäkään sivun sisältöä, kuvavirtaa, fonttiohjelmaa tai asiaan liittymätöntä epäsuoraa oliota ei dekoodata

Katso myös