Signature Transform Methods and Permissions
HotPDF kan skapa DocMDP- och FieldMDP-behörighetsstrukturer samt granska och klassificera varje standardiserad signaturtransformmetod i ett inläst dokument
Producent-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 combines signed-placeholder creation with certification configuration
ConfigureCertificationSignature är för en befintlig författad signerad platshållare och kräver att det fältet är det första fält som bär en signaturordlista
Ett dokument kan bara innehålla en certifieringssignatur, så en andra konfigurationsbegäran avvisas innan objektgrafen ändras
Dessa API:er förhandlar automatiskt fram PDF 1.5-utdata
DocMDP-behörighetsnivåer
| Värde | Certification permission |
|---|---|
dmpNoChanges | No changes are permitted after certification |
dmpFormFillAndSign | Ifyllning av formulär, instansiering av mallar och signering är tillåtna |
dmpFormFillSignAndAnnotate | Föregående ändringar plus skapande, borttag och ändring av annoteringar tillåts |
dmpNone är reserverat för granskningsresultat utan DocMDP-transform och avvisas av metoderna som skapar
Fältlåsomfång
| Värde | Fältargument | Effekt efter signering |
|---|---|---|
flaAll | Must be empty | Locks every form field |
flaInclude | One or more unique field names | Låser bara de listade fälten |
flaExclude | One or more unique field names | Låser alla fält utom de listade fälten |
AttachSignatureFieldLock avvisar tomma namn, dubbletter av namn, ogiltiga åtgärdsvärden, en inkompatibel Fields-struktur, ett osignerat målfält eller ett fält som redan har en låsning eller FieldMDP-princip
Emitted structure
- Certifieringssignaturen har en direkt
/Reference-array som innehåller en direkt DocMDP-signaturreferensordlista och direkta transformparametrar - Katalogens post
/Perms /DocMDPpekar på samma indirekta signaturordlista - Fältets post
/Lockpekar på en indirekt/Type /SigFieldLock-ordlista - Låsningens omfång kopieras till en direkt FieldMDP-signaturreferens, och dess post
/Datapekar på den indirekta katalogroten - The signature dictionary marks transform references as critical through
/V 1
Delphi-exempel
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;
Loaded inspection
function GetLoadedSignaturePermissions(
SigIndex: Integer;
out Info: THPDFSignaturePermissionInfo): Boolean;
Läsaren rapporterar hela transformmängden, antal referenser, DocMDP-behörighet, SigFieldLock- och FieldMDP-omfång, UR-användarrättigheter, källan till Catalog UR eller UR3, omfånget för Identity-objektet, okända metoder, strukturell giltighet samt en diagnostisk problemsträng
It verifies required direct and indirect shapes, Catalog /Perms mål, transformversionsversioner, duplicerade referenser, UR kontra UR3-restriktioner och den valfria DocMDP /P 2 default
Om både SigFieldLock och FieldMDP finns måste deras åtgärder och fältlistor stämma överens
Genomgången av Identity-omfånget är cykelsäker och avgränsad till 64 nivåer och 100 000 indirekta objekt, medan granskningen aldrig exekverar JavaScript, åtgärder eller signaturinnehåll
Standardiserad transformationstäckning
| Method | Rapporterad policy |
|---|---|
DocMDP | Certifieringsbehörighet och matchande Catalog /Perms /DocMDP mål |
UR | Dokument-, annoterings-, formulär-, signatur- och inbäddad fil-rättigheter plus äldre /UR eller byteintervall /UR3 källa |
FieldMDP | All-, Include- eller Exclude-fältlåsomfång och kopierad SigFieldLock-överenskommelse |
Identity | Cykelsäkra transitiva objektnummer som nås från den obligatoriska indirekta /Data roten |
Okända metodnamn behålls i UnknownTransformMethods och gör behörighetsstrukturen ogiltig så att en kritisk transform inte kan förbises
Validation boundary
GetLoadedSignaturePermissions rapporterar enbart policystrukturen
VerifyLoadedSignature continues to report cryptographic integrity separately
AnalyzeLoadedSignatureRevisions utför semantisk ändringsanalys revision för revision för DocMDP, FieldMDP, UR3 och Identity-policyer med byteintervall, medan föråldrade UR-objektsammandragssignaturer utan byteintervall fortfarande kan granskas strukturellt
SaveIncrementalUpdateAuthenticated övergår från granskning till drivning: den läser policys från sina signerade ögonblicksbilder, autentiserar de styrande signaturerna, validerar alla senare revisioner och publicerar genom atomär ersättning först efter att varje policy lyckats
Performance
Producentvalideringen genomsöker bara författade AcroForm-fält och den lilla arrayen av signaturreferenser, medan granskning av laddade dokument bara läser den valda signaturen, dess lås, dess referenser och Catalog-behörighetsposten
Inget sidinnehåll, ingen bildström, inget teckensnittsprogram och inget orelaterat indirekt objekt avkodas