THPDFHeadlessAES256Security

Cette classe de HPDFHeadlessSecurity authentifie les dictionnaires de chiffrement Standard V=5 avec R=5 ou R=6 et les crypt filters AESV3 DocOpen, en utilisant les implémentations cryptographiques HotPDF partagées

Create(EncryptionDictionary, Password, CancellationToken) accepte un dictionnaire possédé par l'appelant, un mot de passe Unicode et un token d'annulation optionnel possédé par l'appelant ; les mots de passe utilisent des octets UTF-8 tronqués à 127 octets, sans normalisation SASLprep

L'authentification propriétaire est tentée avant l'authentification utilisateur, OE ou UE récupère la clé de fichier 256 bits, et Perms authentifie le masque de permissions et la politique EncryptMetadata ; la destruction efface la clé conservée

DecryptString et EncryptString suivent StrF, tandis que DecryptStream(Data, IsMetadata) et EncryptStream(Data, IsMetadata) suivent StmF et EncryptMetadata ; IsMetadata vaut false par défaut, Identity laisse les octets inchangés, et les charges utiles chiffrées portent un IV neuf de 16 octets et un padding PKCS7

RequireTextExtractionPermission vérifie le bit de permission 5, et RequireFormFillPermission le bit 9 ; les mots de passe propriétaire authentifiés contournent ces restrictions de permissions utilisateur

Les propriétés en lecture seule sont Revision, OwnerAuthenticated, PermissionMask, EncryptMetadata, EncryptStrings et EncryptStreams

Les échecs lèvent EHPDFHeadlessSecurityError ; l'annulation conserve EHPDFOperationCancelled, et les appelants doivent appliquer les exceptions xref, object-stream, dictionnaire de chiffrement, trailer-ID et Contents de signature quand ils utilisent ce fournisseur directement

RC4, AES-128, les gestionnaires à clé publique, AES-GCM, les crypt filters de flux explicites et la validation du MAC PDF exigent des politiques séparées ; ce fournisseur ne crée pas de dictionnaires de chiffrement et ne modifie pas les permissions du document