THPDFHeadlessAES256Security
这个 HPDFHeadlessSecurity 中的类使用共享的 HotPDF 密码学实现,认证带 R=5 或 R=6 及 AESV3 DocOpen crypt filter 的 Standard V=5 加密字典
Create(EncryptionDictionary, Password, CancellationToken) 接受调用方所有的字典、Unicode 密码和可选的调用方取消 token;密码使用按 127 字节截断的 UTF-8 字节,不做 SASLprep 规范化
先尝试所有者认证再尝试用户认证,OE 或 UE 恢复 256 位文件密钥,Perms 认证权限掩码与 EncryptMetadata 策略;销毁时清除保留的密钥
DecryptString 与 EncryptString 遵循 StrF,DecryptStream(Data, IsMetadata) 与 EncryptStream(Data, IsMetadata) 遵循 StmF 和 EncryptMetadata;IsMetadata 默认 false,Identity 不改变字节,加密载荷携带全新的 16 字节 IV 和 PKCS7 填充
RequireTextExtractionPermission 检查权限位 5,RequireFormFillPermission 检查位 9;通过认证的所有者密码绕过这些用户权限限制
只读属性包括 Revision、OwnerAuthenticated、PermissionMask、EncryptMetadata、EncryptStrings 和 EncryptStreams
失败抛出 EHPDFHeadlessSecurityError;取消保留 EHPDFOperationCancelled,直接使用该提供方时调用方须自行应用 xref、object stream、加密字典、trailer ID 和签名 Contents 例外
RC4、AES-128、公钥 handler、AES-GCM、显式流 Crypt filter 和 PDF MAC 验证需要单独的策略;该提供方不创建加密字典,也不更改文档权限