sig
  val crypt : int array -> Pdfio.bytes -> Pdfio.bytes
  val aes_decrypt_data :
    ?remove_padding:bool -> int -> int array -> Pdfio.bytes -> Pdfio.bytes
  val aes_decrypt_data_ecb :
    ?remove_padding:bool -> int -> int array -> Pdfio.bytes -> Pdfio.bytes
  val aes_encrypt_data :
    ?firstblock:int array -> int -> int array -> Pdfio.bytes -> Pdfio.bytes
  val aes_encrypt_data_ecb : int -> int array -> Pdfio.bytes -> Pdfio.bytes
  val sha256 : Pdfio.input -> string
  val sha384 : Pdfio.input -> string
  val sha512 : Pdfio.input -> string
  type encryption = ARC4 of int * int | AESV2 | AESV3 of bool
  val find_hash :
    Pdfcryptprimitives.encryption ->
    int32 -> int32 -> int array -> int -> int array
  val decrypt_stream_data :
    Pdfcryptprimitives.encryption ->
    bool ->
    string option ->
    int -> int -> int array -> int -> int -> Pdfio.bytes -> Pdfio.bytes
end