THPDFHeadlessAES256Security

Этот класс в HPDFHeadlessSecurity аутентифицирует словари шифрования Standard с V=5, R=5 или R=6 и crypt-фильтрами AESV3 DocOpen, используя общие криптографические реализации HotPDF

Create(EncryptionDictionary, Password, CancellationToken) принимает словарь вызывающего, пароль Unicode и необязательный cancellation token вызывающего; пароли — байты UTF-8, обрезанные на 127 байтах, без нормализации 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, обработчики с открытым ключом, AES-GCM, явные stream Crypt-фильтры и валидация PDF MAC требуют отдельных политик; этот провайдер не создаёт словари шифрования и не меняет разрешения документа