modern-pdf-lib / PdfEncryptionHandler
Class: PdfEncryptionHandler
Defined in: src/crypto/encryptionHandler.ts:108
Handles encryption and decryption of PDF objects according to the standard security handler.
Create via:
PdfEncryptionHandler.create(options)for new encryptionPdfEncryptionHandler.fromEncryptDict(dict, fileId, password)for existing
Methods
buildEncryptDict()
buildEncryptDict():
PdfDict
Defined in: src/crypto/encryptionHandler.ts:549
Build the /Encrypt dictionary for the PDF trailer.
Returns
A PdfDict suitable for use as the /Encrypt entry.
decryptObject()
decryptObject(
objNum,genNum,data):Promise<Uint8Array<ArrayBufferLike>>
Defined in: src/crypto/encryptionHandler.ts:487
Decrypt raw data for a specific object.
Parameters
objNum
number
Object number.
genNum
number
Generation number.
data
Uint8Array
Encrypted data.
Returns
Promise<Uint8Array<ArrayBufferLike>>
Decrypted data.
decryptStream()
decryptStream(
objNum,genNum,streamData):Promise<Uint8Array<ArrayBufferLike>>
Defined in: src/crypto/encryptionHandler.ts:532
Decrypt a stream's data.
Parameters
objNum
number
Object number.
genNum
number
Generation number.
streamData
Uint8Array
Encrypted stream bytes.
Returns
Promise<Uint8Array<ArrayBufferLike>>
Decrypted stream bytes.
encryptObject()
encryptObject(
objNum,genNum,data):Promise<Uint8Array<ArrayBufferLike>>
Defined in: src/crypto/encryptionHandler.ts:466
Encrypt raw data for a specific object.
Parameters
objNum
number
Object number.
genNum
number
Generation number.
data
Uint8Array
Plaintext data.
Returns
Promise<Uint8Array<ArrayBufferLike>>
Encrypted data.
encryptString()
encryptString(
objNum,genNum,str):Promise<PdfString>
Defined in: src/crypto/encryptionHandler.ts:513
Encrypt a PdfString value.
Converts the string value to bytes, encrypts, and returns a new hex-encoded PdfString.
Parameters
objNum
number
Object number.
genNum
number
Generation number.
str
The string to encrypt.
Returns
Promise<PdfString>
An encrypted PdfString (hex-encoded).
getFileId()
getFileId():
Uint8Array
Defined in: src/crypto/encryptionHandler.ts:655
The file ID used for key derivation.
Returns
Uint8Array
getFileKey()
getFileKey():
Uint8Array
Defined in: src/crypto/encryptionHandler.ts:650
The file encryption key (for testing/debugging).
Returns
Uint8Array
getPermissions()
getPermissions():
PdfPermissionFlags
Defined in: src/crypto/encryptionHandler.ts:625
Get the permission flags.
Returns
getPermissionsValue()
getPermissionsValue():
number
Defined in: src/crypto/encryptionHandler.ts:630
Get the raw permissions value.
Returns
number
getRevision()
getRevision():
number
Defined in: src/crypto/encryptionHandler.ts:645
The security handler revision (/R).
Returns
number
getVersion()
getVersion():
number
Defined in: src/crypto/encryptionHandler.ts:640
The algorithm version (/V).
Returns
number
isAes()
isAes():
boolean
Defined in: src/crypto/encryptionHandler.ts:635
Whether this handler uses AES (vs RC4).
Returns
boolean
isMetadataEncrypted()
isMetadataEncrypted():
boolean
Defined in: src/crypto/encryptionHandler.ts:660
Whether metadata streams are encrypted.
Returns
boolean
create()
staticcreate(options,fileId?):Promise<PdfEncryptionHandler>
Defined in: src/crypto/encryptionHandler.ts:201
Create a new encryption handler for encrypting a document.
Generates all necessary keys and values for the /Encrypt dictionary.
Parameters
options
Encryption options.
fileId?
Uint8Array<ArrayBufferLike>
Optional file ID. If omitted, a random one is generated.
Returns
Promise<PdfEncryptionHandler>
A configured PdfEncryptionHandler.
fromEncryptDict()
staticfromEncryptDict(dict,fileId,password):Promise<PdfEncryptionHandler>
Defined in: src/crypto/encryptionHandler.ts:316
Create an encryption handler from an existing /Encrypt dictionary.
Parameters
dict
The /Encrypt dictionary from the PDF trailer.
fileId
Uint8Array
The first element of the /ID array.
password
string
The password to try (user or owner).
Returns
Promise<PdfEncryptionHandler>
A configured PdfEncryptionHandler.
Throws
If the password is incorrect or the dict is invalid.