THPDFSignaturePermissionInfo Record
Structural DocMDP, FieldMDP and usage rights policy dictionaries held in a signed PDF
Declaration
THPDFSignaturePermissionInfo= record
TransformMethods: THPDFSignatureTransformMethods;
TransformReferenceCount: Integer;
HasDocMDP: boolean;
DocMDPPermission: THPDFDocMDPPermission;
HasFieldLock: boolean;
HasFieldMDP: boolean;
FieldLockAction: THPDFFieldLockAction;
FieldNames: THPDFAnsiStringArray;
HasUR: boolean;
UsageRights: THPDFUsageRights;
UsageRightsPermissionSource: THPDFUsageRightsPermissionSource;
CatalogUsageRightsMatches: boolean;
UsageRightsRestrictAll: boolean;
UsageRightsMessage: AnsiString;
HasIdentity: boolean;
IdentityObjectNumbers: THPDFIntegerArray;
UnknownTransformMethods: THPDFAnsiStringArray;
CatalogPermissionMatches: boolean;
StructurallyValid: boolean;
Issue: AnsiString;
end;
Unit
HPDFDoc
Fields
| Field | Purpose |
|---|---|
TransformMethods | Set of recognised /TransformMethod values found on signature dictionaries |
TransformReferenceCount | How many transform parameter references were inspected |
HasDocMDP | True where a DocMDP transform with a permission dictionary exists |
DocMDPPermission | DocMDP permission level declared by the signing signature, 1 through 3 |
HasFieldLock | True where a FieldLock transform parameter dictionary is present |
HasFieldMDP | True where a FieldMDP transform is present on any signature |
FieldLockAction | Lock action (All / Include / Exclude) held by the field lock dictionary |
FieldNames | Field names that the lock or FieldMDP policy lists |
HasUR | True where a usage rights signature exists |
UsageRights | Usage rights that the UR signature enables |
UsageRightsPermissionSource | Which revision's UR signature provides the effective rights |
CatalogUsageRightsMatches | True where the Catalog /Perms entry tallies with the UR signature |
UsageRightsRestrictAll | True where the UR policy restricts every documented capability |
UsageRightsMessage | Detail text on the usage rights evaluation |
HasIdentity | True where an Identity transform, of the document timestamp style, is present |
IdentityObjectNumbers | Object numbers of the signatures that carry the Identity transform |
UnknownTransformMethods | Transform method names outside the recognised set; a hint at tampering |
CatalogPermissionMatches | True where the Catalog permission bits tally with the DocMDP policy |
StructurallyValid | True where every policy dictionary parsed without structural trouble |
Issue | First structural problem found; empty whilst StructurallyValid holds |
Usage notes
- Fill it with
GetLoadedSignaturePermissions; the record sets out the policies stored in the file, not whether later revisions obeyed them - Cryptographic validity remains the job of
VerifyLoadedSignature; weigh both views before deciding a document can be trusted - Feed this record into
AnalyzeLoadedSignatureRevisions, which carries it as thePermissionsfield of each revision analysis