Sertifiseringsunderskrifter og feltlåser
HotPDF kan opprette de PDF-tillatelsesstrukturene som henger på sertifiseringsunderskrifter og underskrevne feltlåser, for deretter å inspisere de samme strukturene i et innlastet dokument
Produsent-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 kombinerer opprettelsen av en underskrevet plassholder med sertifiseringskonfigurasjon
ConfigureCertificationSignature er for en allerede opprettet underskrevet plassholder og krever at det feltet er det første feltet som bærer en underskriftsordbok
Et dokument kan kun inneholde én sertifiseringsunderskrift, slik at en andre konfigurasjonsforespørsel avvises før objektgrafen endres
Disse API-ene forhandler automatisk PDF 1.5-utmatning
DocMDP-tillatelsesnivåer
| Verdi | Sertifiseringstillatelse |
|---|---|
dmpNoChanges | Ingen endringer er tillatt etter sertifisering |
dmpFormFillAndSign | Skjemautfylling, malinstansiering og underskrivning er tillatt |
dmpFormFillSignAndAnnotate | De foregående endringene pluss opprettelse, sletting og endring av annotasjoner er tillatt |
dmpNone er reservert for inspeksjonsresultater uten en DocMDP-transformasjon og avvises av produsent-metoder
Omfang for feltlåser
| Verdi | Fields-argument | Effekt etter underskrift |
|---|---|---|
flaAll | Må være tom | Låser hvert skjemafelt |
flaInclude | Et eller flere unike feltnavn | Låser kun de oppførte feltene |
flaExclude | Et eller flere unike feltnavn | Låser hvert felt unntatt de oppførte feltene |
AttachSignatureFieldLock avviser tomme navn, duplikatnavn, ugyldige handlingsverdier, en inkompatibel Fields-form, et ounderskrevet målfelt eller et felt som allerede bærer en lås eller en FieldMDP-policy
Utsendt struktur
- Sertifiseringsunderskriften bærer en direkte
/Reference-array som inneholder en direkte DocMDP-underskriftsreferanseordbok og direkte transformasjonsparametere - Catalog
/Perms /DocMDP-oppføringen peker på samme indirekte underskriftsordbok - Feltets
/Lock-oppføring peker på en indirekte/Type /SigFieldLock-ordbok - Låseomfanget kopieres inn i en direkte FieldMDP-underskriftsreferanse, og dens
/Data-oppføring peker på den indirekte Catalog-roten - Underskriftsordboken markerer transformasjonsreferanser som kritiske via
/V 1
Delphi-eksempel
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;
Innlastet inspeksjon
function GetLoadedSignaturePermissions(
SigIndex: Integer;
out Info: THPDFSignaturePermissionInfo): Boolean;
Leseren rapporterer DocMDP-tillatelse, Catalog-kobling, SigFieldLock-omfang, FieldMDP-omfang, feltnavn, strukturell gyldighet og en diagnostisk problemstreng
Den verifiserer de påkrevde direkte og indirekte objektformene og bekrefter at Catalog /Perms /DocMDP peker på samme underskriftsordbok
Hvis både SigFieldLock og FieldMDP er til stede, må deres handlinger og feltlister stemme overens
Leseren utfører avgrenset ordboks- og arrayinspeksjon og utfører ikke JavaScript, handlinger eller underskriftsinnhold
Valideringsgrense
GetLoadedSignaturePermissions rapporterer utelukkende policystrukturen
VerifyLoadedSignature fortsetter å separat rapportere kryptografisk integritet
Ingen av metodene påstår at enhver senere inkrementell revisjon overholder den rapporterte DocMDP- eller FieldMDP-tillatelsen, ettersom det krever revisjon-for-revisjon semantisk endringsanalyse
Ytelse
Produsentvalidering skanner kun opprettede AcroForm-felter og den lille underskriftsreferens-arrayen, mens innlastet inspeksjon kun leser den valgte underskriften, dens lås, dens referanser og Catalog-tillatelsesoppføringen
Det dekodes ikke noe sideinnhold, bildestrøm, skriftprogram eller urelatert indirekte objekt