|
Détermine la méthode de chiffrement du fichier PDF
type
THPDFKeyType = ( k40, k128, aes128, aes256 );
Syntaxe Delphi :
property CryptKeyLength: THPDFKeyType;
Syntaxe C++ :
__property THPDFKeyType CryptKeyLength;
Description
Utilisez CryptKeyLength pour choisir la révision du gestionnaire de sécurité standard et le chiffrement utilisés lorsque ActivateProtection est activé
Pour le chiffrement par mot de passe AES, mettez EncryptMetadata à false avant BeginDoc pour écrire /EncryptMetadata false, laisser les flux XMP /Metadata en clair et utiliser la dérivation de clé AES-128 correspondante ou le flag de métadonnées AES-256 /Perms. La valeur par défaut est true pour des raisons de compatibilité.
Value Meaning
k40 Gestionnaire de sécurité standard V=1, R=2, RC4 avec une clé de 40 bits (PDF 1.1+)
k128 Gestionnaire de sécurité standard V=2, R=3, RC4 avec une clé de 128 bits (PDF 1.4+)
aes128 Gestionnaire de sécurité standard V=4, R=4 avec filtre cryptographique StdCF (CFM=AESV2). AES-128 en mode CBC avec remplissage PKCS#7 et un vecteur d'initialisation aléatoire de 16 octets selon ISO 32000-1 7.6.2 / 7.4.4.2 (PDF 1.6+). Depuis HotPDF v2.4.0, cette option chiffre les chaînes et les flux avec une vraie implémentation AES ; les versions antérieures émettaient le dictionnaire AES mais ne chiffraient pas réellement le contenu
aes256 Gestionnaire de sécurité standard V=5 avec filtre cryptographique StdCF (CFM=AESV3). AES-256 en mode CBC avec remplissage PKCS#7 et un vecteur d'initialisation aléatoire de 16 octets selon Adobe Extension Level 3 / ISO 32000-2 7.6.4 (PDF 1.7+, accepté par Acrobat 9 et versions ultérieures, Foxit, Chrome et les visionneuses Apple/macOS). Disponible depuis HotPDF v2.17.0. Sélectionner aes256 fait passer la version de sortie en PDF 1.7 quand elle est inférieure, sauf si StrictVersionLock est défini, auquel cas une version inférieure retombe en AES-128 (avant v2.760.0, la sortie PDF 1.6 par défaut retombait silencieusement en AES-128). La révision par défaut est R=5 avec hachage de mot de passe SHA-256. Définissez UseAES256R6 sur true pour passer à R=6 avec l'algorithme 2.B « hash dance » de l'ISO 32000-2 (SHA-256 / SHA-384 / SHA-512 + mélangeur AES-128) ; R=6 est requis par Acrobat DC et les validateurs PDF/A-4. Disponible depuis HotPDF v2.22.0
aesgcm Gestionnaire de sécurité standard V=6, R=7 avec filtre de chiffrement StdCF (CFM=AESV4). AES-256-GCM utilise un vecteur d’initialisation unique de 12 octets et un tag d’authentification de 16 octets pour chaque chaîne et flux chiffrés, avec données authentifiées additionnelles vides, comme défini par ISO/TS 32003:2023. Cette option exige PDF 2.0 et émet l’extension développeur ISO au niveau 32003. Disponible depuis HotPDF v2.475.0.
Gestionnaire de sécurité à clé publique (PDF 1.7 7.6.5)
Pour le chiffrement par certificats (un document, plusieurs destinataires), appelez EnablePubKeyEncryption(seed, KeyType, EncryptMetadata) au lieu de définir UserPassword / OwnerPassword. Le chiffrement à clé publique prend en charge k40, k128, aes128 et aes256 (aes256 fait passer la sortie en PDF 2.0, et les destinataires à certificat ou à accord de clés l’exigent) ; aesgcm est limité au gestionnaire de sécurité standard par mot de passe. L’appelant doit construire un blob enveloppedData PKCS#7 par destinataire (CryptoAPI Windows, OpenSSL ou pycryptodome) et ajouter chaque blob via AddPubKeyRecipient ; la clé de chiffrement du fichier se dérive comme décrit dans ISO 32000-1 7.6.4.3 (SHA-1 de la graine concaténée avec les binaires d’enveloppe). Disponible depuis HotPDF v2.33.0.
Exemple de code
HPDF.OwnerPassword := 'password'; // Set owner password (required to change security settings)
HPDF.UserPassword := 'user'; // Set user password (required to open the document)
HPDF.ProtectOptions := [prPrint, prPrint12bit]; // Allow full-quality printing only
HPDF.ActivateProtection := true; // Enable PDF security
Voir aussi: ActivateProtection, OwnerPassword, ProtectOptions, UserPassword
|