THotPDF.CryptKeyLength Property

 

THotPDF.CryptKeyLength

THotPDF

 

Top  Vorige  Volgende

Bepaalt de versleutelingsmethode van het PDF-bestand.

 

type

THPDFKeyType = ( k40,  k128,  aes128,  aes256,  aesgcm );

 

Delphi-syntax:

property CryptKeyLength: THPDFKeyType;

 

C++-syntax:

__property THPDFKeyType CryptKeyLength;

 

Description

Gebruik CryptKeyLength om de revisie van de standaard security handler en het cijfer te kiezen die worden gebruikt wanneer ActivateProtection is ingeschakeld.

Zet voor AES-wachtwoordversleuteling EncryptMetadata op false vóór BeginDoc om /EncryptMetadata false te schrijven, XMP /Metadata-streams in klare tekst te laten en de bijpassende AES-128-sleutelafleiding of AES-256 /Perms-metadatavlag te gebruiken. Standaard is true voor compatibiliteit.

 

Waarde                Betekenis


k40                        Standaard security handler V=1, R=2, RC4 met een 40-bit sleutel (PDF 1.1+).

k128                        Standaard security handler V=2, R=3, RC4 met een 128-bit sleutel (PDF 1.4+).

aes128                  Standaard security handler V=4, R=4 met crypt filter StdCF (CFM=AESV2). AES-128 in CBC-modus met PKCS#7-padding en een willekeurige initialisatievector van 16 byte per ISO 32000-1 7.6.2 / 7.4.4.2 (PDF 1.6+). Sinds HotPDF v2.4.0 versleutelt deze optie tekenreeksen en streams met een echte AES-implementatie; eerdere builds gaven het AES-woordenboek uit maar versleutelden de inhoud niet echt.

aes256                  Standaard security handler V=5 met crypt filter StdCF (CFM=AESV3). AES-256 in CBC-modus met PKCS#7-padding en een willekeurige initialisatievector van 16 byte per Adobe Extension Level 3 / ISO 32000-2 7.6.4 (PDF 1.7+, geaccepteerd door Acrobat 9 en later, Foxit, Chrome en de Apple/macOS-viewers). Beschikbaar sinds HotPDF v2.17.0. Als je aes256 selecteert, gaat de outputversie omhoog naar PDF 1.7 wanneer die lager is, tenzij StrictVersionLock is gezet — in dat geval valt een lagere versie terug op AES-128 (vóór v2.760.0 viel de standaard-PDF-1.6-output geruisloos terug op AES-128). De standaardrevisie is R=5 met SHA-256-wachtwoordhashing. Zet UseAES256R6 op true om naar R=6 te schakelen met het ISO 32000-2-algoritme 2.B "hash dance" (SHA-256 / SHA-384 / SHA-512 + AES-128-mixer); R=6 is vereist door Acrobat DC en PDF/A-4-validators. Beschikbaar sinds HotPDF v2.22.0.

aesgcm              Standaard security handler V=6, R=7 met crypt filter StdCF (CFM=AESV4). AES-256-GCM gebruikt een unieke initialisatievector van 12 byte en een authenticatietag van 16 byte voor elke versleutelde tekenreeks en stream, met lege additional authenticated data, zoals gedefinieerd in ISO/TS 32003:2023. Deze optie vereist PDF 2.0 en geeft de ISO developer extension uit op extensieniveau 32003. Beschikbaar sinds HotPDF v2.475.0.

 

Public-Key Security Handler (ISO 32000-1 7.6.4, ISO 32000-2 7.6.5)

Voor certificaatgebaseerde versleuteling (één document, meerdere ontvangers) roep je EnablePubKeyEncryption(seed, KeyType, EncryptMetadata) aan in plaats van UserPassword / OwnerPassword in te stellen. Public-key-versleuteling ondersteunt k40, k128, aes128 en aes256 (aes256 tilt de output naar PDF 2.0, en certificaat- of key-agreement-ontvangers vereisen dat); aesgcm is beperkt tot de op wachtwoord gebaseerde standard security handler. De aanroeper moet per ontvanger één PKCS#7-envelopedData-blob bouwen (Windows CryptoAPI, OpenSSL of pycryptodome) en elke blob via AddPubKeyRecipient toevoegen; de bestandssleutel wordt afgeleid zoals beschreven in ISO 32000-1 7.6.4.3 (SHA-1 van seed, samengevoegd met de envelope-binaries). Beschikbaar sinds HotPDF v2.33.0

 

Codevoorbeeld

HPDF.Version := pdf20; // Select PDF 2.0 HPDF.CryptKeyLength := aesgcm; // Select AES-256-GCM 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.EncryptMetadata := false; // Keep XMP metadata cleartext HPDF.ActivateProtection := true; // Enable PDF security

 

Zie ook: ActivateProtection, OwnerPassword, ProtectOptions, UserPassword