THPDFHeadlessAES256Security

HPDFHeadlessSecurity 中的這個類別使用共用的 HotPDF 密碼學實作,驗證帶 R=5 或 R=6 與 AESV3 DocOpen crypt filter 的 Standard V=5 加密字典

Create(EncryptionDictionary, Password, CancellationToken) 接受呼叫端自有的字典、Unicode 密碼與選用的呼叫端取消 token;密碼以 UTF-8 位元組表示並在 127 位元組處截斷,不做 SASLprep 正規化

先嘗試 owner 驗證再嘗試 user 驗證,OE 或 UE 取回 256 位元檔案金鑰,Perms 驗證權限遮罩與 EncryptMetadata 原則;解構會清除保留的金鑰

DecryptString 與 EncryptString 遵循 StrF,DecryptStream(Data, IsMetadata) 與 EncryptStream(Data, IsMetadata) 遵循 StmF 與 EncryptMetadata;IsMetadata 預設 false,Identity 不改變位元組,加密酬載帶有新的 16 位元組 IV 與 PKCS7 padding

RequireTextExtractionPermission 檢查權限位元 5,RequireFormFillPermission 檢查位元 9;已驗證的 owner 密碼可繞過這些 user 權限限制

唯讀屬性包括 Revision、OwnerAuthenticated、PermissionMask、EncryptMetadata、EncryptStrings 與 EncryptStreams

失敗拋出 EHPDFHeadlessSecurityError;取消保留 EHPDFOperationCancelled;直接使用此 provider 時,呼叫端必須自行套用 xref、object stream、加密字典、trailer ID 與簽章 Contents 的例外規則

RC4、AES-128、公鑰 handler、AES-GCM、明確的串流 Crypt filter 與 PDF MAC 驗證需要另外的原則;此 provider 不建立加密字典,也不變更文件權限