sig
  type direction = Encrypt | Decrypt
  type chaining_mode =
      ECB
    | CBC
    | CFB of int
    | OFB of int
    | CTR
    | CTR_N of int
  val aes :
    ?mode:Cryptokit.Cipher.chaining_mode ->
    ?pad:Cryptokit.Padding.scheme ->
    ?iv:string -> string -> Cryptokit.Cipher.direction -> Cryptokit.transform
  val chacha20 :
    ?iv:string ->
    ?ctr:int64 -> string -> Cryptokit.Cipher.direction -> Cryptokit.transform
  val des :
    ?mode:Cryptokit.Cipher.chaining_mode ->
    ?pad:Cryptokit.Padding.scheme ->
    ?iv:string -> string -> Cryptokit.Cipher.direction -> Cryptokit.transform
  val triple_des :
    ?mode:Cryptokit.Cipher.chaining_mode ->
    ?pad:Cryptokit.Padding.scheme ->
    ?iv:string -> string -> Cryptokit.Cipher.direction -> Cryptokit.transform
  val arcfour : string -> Cryptokit.Cipher.direction -> Cryptokit.transform
  val blowfish :
    ?mode:Cryptokit.Cipher.chaining_mode ->
    ?pad:Cryptokit.Padding.scheme ->
    ?iv:string -> string -> Cryptokit.Cipher.direction -> Cryptokit.transform
end