Propriété THotPDF.CryptKeyLength

 

THotPDF.CryptKeyLength

THotPDF

 

Haut  Précédent  Suivant

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