sig
  module type S =
    sig
      type key
      type result = {
        message : Cstruct.t;
        key : Nocrypto.Cipher_stream.S.key;
      }
      val of_secret : Cstruct.t -> Nocrypto.Cipher_stream.S.key
      val encrypt :
        key:Nocrypto.Cipher_stream.S.key ->
        Cstruct.t -> Nocrypto.Cipher_stream.S.result
      val decrypt :
        key:Nocrypto.Cipher_stream.S.key ->
        Cstruct.t -> Nocrypto.Cipher_stream.S.result
    end
  module ARC4 : S
end