Handtekeningtransformatiemethoden en permissies

HotPDF kan DocMDP- en FieldMDP-permissiestructuren opstellen en daarna elke standaard handtekeningtransformatiemethode in een geladen document inspecteren en classificeren

Producer 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 combineert het aanmaken van een ondertekende tijdelijke aanduiding met certificeringsconfiguratie

ConfigureCertificationSignature is voor een reeds aangemaakte ondertekende tijdelijke aanduiding en vereist dat dat veld het eerste veld is dat een handtekeningwoordenboek draagt

Een document kan slechts één certificeringshandtekening bevatten, zodat een tweede configuratieverzoek wordt afgewezen voordat de objectgraaf wordt gewijzigd

Deze API's schakelen automatisch over naar PDF 1.5-uitvoer

DocMDP-permissieniveaus

Waarde Certificeringspermissie
dmpNoChangesNa certificering zijn geen wijzigingen toegestaan
dmpFormFillAndSignFormuliervulling, sjablooninstantiatie en ondertekening zijn toegestaan
dmpFormFillSignAndAnnotateDe voorgaande wijzigingen plus het aanmaken, verwijderen en wijzigen van annotaties zijn toegestaan

dmpNone is gereserveerd voor inspectieresultaten zonder een DocMDP-transformatie en wordt door producer-methoden afgewezen

Vergrendelingsbereiken van velden

Waarde Fields-argument Effect na ondertekenen
flaAllMoet leeg zijnVergrendelt elk formulierveld
flaIncludeEen of meer unieke veldnamenVergrendelt alleen de vermelde velden
flaExcludeEen of meer unieke veldnamenVergrendelt elk veld behalve de vermelde velden

AttachSignatureFieldLock wijst lege namen, dubbele namen, ongeldige actiewaarden, een incompatibele Fields-vorm, een niet-ondertekend doelveld of een veld dat al een vergrendeling of FieldMDP-beleid draagt af

Emitted structure

Delphi-voorbeeld

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;

De lezer rapporteert de volledige transformatieset, het referentieaantal, de DocMDP-permissie, de SigFieldLock- en FieldMDP-bereiken, de UR-gebruiksrechten, de Catalog UR- of UR3-bron, de Identity-objectscope, onbekende methoden, structurele geldigheid en een diagnostische probleemtekenreeks

De lezer verifieert de vereiste directe en indirecte vormen, Catalog-/Perms-doelen, transformatieversies, dubbele verwijzingen, UR-versus-UR3-beperkingen en de optionele DocMDP-/P 2-standaard

Als zowel SigFieldLock als FieldMDP aanwezig zijn, moeten hun acties en veldlijsten overeenkomen

Het doorlopen van de Identity-scope is cycle-veilig en begrensd op 64 niveaus en 100000 indirecte objecten, en inspectie voert nooit JavaScript, acties of handtekeninginhoud uit

Dekking van standaardtransformaties

MethodGerapporteerd beleid
DocMDPCertificeringspermissie en de bijpassende Catalog-doelverwijzing /Perms /DocMDP
URDocument-, annotatie-, formulier-, handtekening- en ingesloten-bestandsrechten plus de legacy-/UR- of byte-range-/UR3-bron
FieldMDPVergrendelingsbereik All, Include of Exclude en overeenstemming met de gekopieerde SigFieldLock
IdentityCycle-veilige transitieve objectnummers die vanaf de vereiste indirecte /Data-wortel bereikbaar zijn

Onbekende methodenamen worden bewaard in UnknownTransformMethods en maken de permissiestructuur ongeldig, zodat een kritieke transformatie niet over het hoofd kan worden gezien

Validation boundary

GetLoadedSignaturePermissions rapporteert alleen de beleidsstructuur

VerifyLoadedSignature rapporteert de cryptografische integriteit nog steeds apart

AnalyzeLoadedSignatureRevisions analyseert semantische wijzigingen revisie voor revisie voor byte-range DocMDP-, FieldMDP-, UR3- en Identity-beleidsregels, terwijl verouderde non-byte-range UR-object-digest-handtekeningen nog steeds via structurele inspectie zichtbaar blijven

SaveIncrementalUpdateAuthenticated maakt van inspectie handhaving: het leest beleid uit de ondertekende snapshots, authenticeert de sturende handtekeningen, valideert alle latere revisies en publiceert pas via atomaire vervanging nadat elk beleid is geslaagd

Prestaties

Producer-validatie scant alleen zelf aangemaakte AcroForm-velden en de kleine handtekeningreferentie-array, terwijl geladen inspectie alleen de gekozen handtekening, diens vergrendeling, verwijzingen en de Catalog-permissieverwijzing leest

Er wordt geen pagina-inhoud, afbeeldingsstream, lettertypeprogramma of niet-gerelateerd indirect object gedecodeerd

Zie ook