THPDFSignaturePermissionInfo Record
Structural DocMDP, FieldMDP, and usage rights policy dictionaries stored 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 recognized /TransformMethod values found on signature dictionaries |
TransformReferenceCount | Number of transform parameter references inspected |
HasDocMDP | True when a DocMDP transform with a permission dictionary exists |
DocMDPPermission | DocMDP permission level declared by the signing signature (1 to 3) |
HasFieldLock | True when a FieldLock transform parameter dictionary is present |
HasFieldMDP | True when a FieldMDP transform is present on any signature |
FieldLockAction | Lock action (All / Include / Exclude) of the field lock dictionary |
FieldNames | Field names listed by the lock or FieldMDP policy |
HasUR | True when a usage rights signature exists |
UsageRights | Set of usage rights enabled by the UR signature |
UsageRightsPermissionSource | Which revision's UR signature supplies the effective rights |
CatalogUsageRightsMatches | True when the Catalog /Perms entry agrees with the UR signature |
UsageRightsRestrictAll | True when the UR policy restricts every documented capability |
UsageRightsMessage | Detail text about the usage rights evaluation |
HasIdentity | True when an Identity transform (document timestamp style) is present |
IdentityObjectNumbers | Object numbers of the signatures carrying the Identity transform |
UnknownTransformMethods | Transform method names outside the recognized set, a tampering hint |
CatalogPermissionMatches | True when the Catalog permission bits agree with the DocMDP policy |
StructurallyValid | True when every policy dictionary parsed without structural problems |
Issue | First structural problem found, empty when StructurallyValid holds |
Usage notes
- Fill it with
GetLoadedSignaturePermissions; the record describes the policies stored in the file, not whether later revisions obeyed them - Cryptographic validity stays the job of
VerifyLoadedSignature; combine both views before deciding a document is trustworthy - Feed this record into
AnalyzeLoadedSignatureRevisions, which embeds it as thePermissionsfield of each revision analysis