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 требуют отдельных политик; этот провайдер не создаёт словари шифрования и не меняет разрешения документа