THPDFSignaturePermissionInfo 记录
已签名 PDF 中存储的结构性 DocMDP、FieldMDP 与使用权限策略字典
声明
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;
单元
HPDFDoc
字段
| 字段 | 用途 |
|---|---|
TransformMethods | 在签名字典上发现的已识别 /TransformMethod 值集合 |
TransformReferenceCount | 检查过的变换参数引用数量 |
HasDocMDP | 存在带权限字典的 DocMDP 变换时为 True |
DocMDPPermission | 签名声明的 DocMDP 权限级别(1 到 3) |
HasFieldLock | 存在 FieldLock 变换参数字典时为 True |
HasFieldMDP | 任一签名上存在 FieldMDP 变换时为 True |
FieldLockAction | 字段锁定字典的锁定动作(All / Include / Exclude) |
FieldNames | 锁定或 FieldMDP 策略列出的字段名称 |
HasUR | 存在使用权限签名时为 True |
UsageRights | UR 签名启用的使用权限集合 |
UsageRightsPermissionSource | 有效权限来自哪个修订的 UR 签名 |
CatalogUsageRightsMatches | Catalog 的 /Perms 条目与 UR 签名一致时为 True |
UsageRightsRestrictAll | UR 策略限制所有已记录能力时为 True |
UsageRightsMessage | 使用权限评估的详细说明 |
HasIdentity | 存在 Identity 变换(文档时间戳样式)时为 True |
IdentityObjectNumbers | 携带 Identity 变换的签名的对象编号 |
UnknownTransformMethods | 超出已识别集合的变换方法名称,是篡改线索 |
CatalogPermissionMatches | Catalog 权限位与 DocMDP 策略一致时为 True |
StructurallyValid | 所有策略字典都无结构问题地解析完成时为 True |
Issue | 发现的第一个结构问题;StructurallyValid 成立时为空 |
使用说明
- 用
GetLoadedSignaturePermissions填充;该记录描述文件里存储的策略,而不是后续修订是否遵守了这些策略 - 密码学有效性仍由
VerifyLoadedSignature负责;判定文档可信之前要把两个视角结合起来 - 把该记录交给
AnalyzeLoadedSignatureRevisions,它会作为每个修订分析的Permissions字段嵌入