|
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é
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. 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
Gestionnaire de sécurité à clé publique (PDF 1.7 7.6.5)
Pour le chiffrement basé sur certificat (un document, plusieurs destinataires), appelez EnablePubKeyEncryption(seed, KeyType, EncryptMetadata) au lieu de définir UserPassword / OwnerPassword. Les mêmes valeurs de CryptKeyLength s’appliquent au chiffrement symétrique (k40 -> RC4-40 / V=1 + s4 SubFilter, k128 -> RC4-128 / V=2 + s5, aes128 -> AES-128 / V=4 + s5). L’appelant doit créer un blob envelopedData PKCS#7 par destinataire (Windows CryptoAPI, OpenSSL ou pycryptodome) et ajouter chaque blob via AddPubKeyRecipient ; la clé de chiffrement du fichier est dérivée par l’algorithme 9 (SHA-1 du seed concaténé avec les binaires de l’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 := [poEdit, poAnnot]; // Disallow editing and annotations
HPDF.ActivateProtection := true; // Enable PDF security
Voir aussi: ActivateProtection, OwnerPassword, ProtectOptions, UserPassword
|