module Pdfcryptprimitives:sig..end
Generic encryption primitives for ARC4, AES and the SHA family of digests
val crypt : int array -> Pdfio.bytes -> Pdfio.bytesARC4 encryption (40 bit and 128 bit) given a key and some data
val aes_decrypt_data : ?remove_padding:bool -> int -> int array -> Pdfio.bytes -> Pdfio.bytesaes_decrypt_data nk key data decrypts AES data for the given key length,
key, and data. If remove_padding is true (which it is by default), padding
wil be removed from the output
val aes_decrypt_data_ecb : ?remove_padding:bool -> int -> int array -> Pdfio.bytes -> Pdfio.bytesAs aes_decrypt_data above, but in ECB instead of CBC mode
val aes_encrypt_data : ?firstblock:int array -> int -> int array -> Pdfio.bytes -> Pdfio.bytesaes_encrypt_data nk key data encryptes with AES, given a key length, key
and data. The first block (by default a random one) can be overridden by
specifying firstblock, an array of length 16.
val aes_encrypt_data_ecb : int -> int array -> Pdfio.bytes -> Pdfio.bytesAs aes_encrypt_data, but in ECB instead of CBC mode
val sha256 : Pdfio.input -> stringSHA256 digest
val sha384 : Pdfio.input -> stringSHA344 digest
val sha512 : Pdfio.input -> stringSHA512 digest
type encryption = 
| | 
ARC4 of  | 
|||
| | 
AESV2 | 
|||
| | 
AESV3 of  | 
(* | true = iso, false = old algorithm  | *) | 
Types of encryption
val find_hash : encryption ->
       int32 -> int32 -> int array -> int -> int arrayGiven an object number, generation number, input key and key length in bits, apply Algorithm 3.1 from the PDF Reference manual to obtain the hash to be used by the encryption function.
val decrypt_stream_data : encryption ->
       bool ->
       string option ->
       int -> int -> int array -> int -> int -> Pdfio.bytes -> Pdfio.bytesCalling decrypt_stream_data crypt_type encrypt file_encryption_key obj gen key
   keylength r data decrypts data.