sig
  module type T =
    sig
      type key
      val encrypt_cbc :
        Cryptmodes_64.T.key ->
        int * int * int * int -> string -> (int * int * int * int) * string
      val decrypt_cbc :
        Cryptmodes_64.T.key ->
        int * int * int * int -> string -> (int * int * int * int) * string
      val encrypt_cfb8 :
        Cryptmodes_64.T.key ->
        int * int * int * int -> string -> (int * int * int * int) * string
      val decrypt_cfb8 :
        Cryptmodes_64.T.key ->
        int * int * int * int -> string -> (int * int * int * int) * string
      val encrypt_cfb64 :
        Cryptmodes_64.T.key ->
        int * int * int * int ->
        int -> string -> (int * int * int * int) * int * string
      val decrypt_cfb64 :
        Cryptmodes_64.T.key ->
        int * int * int * int ->
        int -> string -> (int * int * int * int) * int * string
      val crypt_ofb :
        Cryptmodes_64.T.key ->
        int * int * int * int ->
        int -> string -> (int * int * int * int) * int * string
    end
  module Make_modes :
    functor (M : Cryptsystem_64.T->
      sig
        type key = M.key
        val encrypt_cbc :
          key ->
          int * int * int * int -> string -> (int * int * int * int) * string
        val decrypt_cbc :
          key ->
          int * int * int * int -> string -> (int * int * int * int) * string
        val encrypt_cfb8 :
          key ->
          int * int * int * int -> string -> (int * int * int * int) * string
        val decrypt_cfb8 :
          key ->
          int * int * int * int -> string -> (int * int * int * int) * string
        val encrypt_cfb64 :
          key ->
          int * int * int * int ->
          int -> string -> (int * int * int * int) * int * string
        val decrypt_cfb64 :
          key ->
          int * int * int * int ->
          int -> string -> (int * int * int * int) * int * string
        val crypt_ofb :
          key ->
          int * int * int * int ->
          int -> string -> (int * int * int * int) * int * string
      end
  module Make_modes_int32 :
    functor (M : Cryptsystem_64.T->
      sig
        type key = M.key
        val encrypt_cbc :
          key ->
          int * int * int * int -> string -> (int * int * int * int) * string
        val decrypt_cbc :
          key ->
          int * int * int * int -> string -> (int * int * int * int) * string
        val encrypt_cfb8 :
          key ->
          int * int * int * int -> string -> (int * int * int * int) * string
        val decrypt_cfb8 :
          key ->
          int * int * int * int -> string -> (int * int * int * int) * string
        val encrypt_cfb64 :
          key ->
          int * int * int * int ->
          int -> string -> (int * int * int * int) * int * string
        val decrypt_cfb64 :
          key ->
          int * int * int * int ->
          int -> string -> (int * int * int * int) * int * string
        val crypt_ofb :
          key ->
          int * int * int * int ->
          int -> string -> (int * int * int * int) * int * string
      end
end