Module Pdfcrypt

module Pdfcrypt: sig .. end

Decrypting PDF files


Note that encryption depends on fixed object and generation numbers: don't change these (for example by calling Pdf.remove_unreferenced on the PDF) before writing.

Encryption support is part of the Pdfwrite module, since files are encrypted when they're written.

val crypt_debug : bool Stdlib.ref

If this is set, various debug is produced on standard output. On startup, is set to false

type permission = 
| NoEdit
| NoPrint
| NoCopy
| NoAnnot
| NoForms
| NoExtract
| NoAssemble
| NoHqPrint
val decrypt_pdf : ?keyfromowner:string ->
string -> Pdf.t -> Pdf.t option * permission list

Decrypt a PDF document, given the user password, returning the permissions under which the document was encrypted.

val decrypt_pdf_owner : string -> Pdf.t -> Pdf.t option

Decrypt a PDF document, given the owner password.

val is_encrypted : Pdf.t -> bool

Is a PDF encrypted?

val recrypt_pdf : ?renumber:bool -> Pdf.t -> string -> Pdf.t

recrypt_pdf decrypted_and_modified re-encrypts a PDF document which was decrypted using the user password and owner password from the original encrypted file and the same permissions and encryption parameters.

val encrypt_pdf_40bit : string -> string -> permission list -> Pdf.t -> Pdf.t

Encrypt a PDF documnent, using 40 bit encryption, with given user and owner passwords.

val encrypt_pdf_128bit : string -> string -> permission list -> Pdf.t -> Pdf.t

Ditto for 128 bit encryption

val encrypt_pdf_AES : bool -> string -> string -> permission list -> Pdf.t -> Pdf.t

Encrypt a file using the AESV2 Crypt filter

val encrypt_pdf_AES256 : bool -> string -> string -> permission list -> Pdf.t -> Pdf.t

Encrypt a file using the AESV3 Crypt filter

val encrypt_pdf_AES256ISO : bool -> string -> string -> permission list -> Pdf.t -> Pdf.t

Encrypt a file using the AESV4 (ISO) Crypt filter