sig
  type ctx
  type buf =
      (char, Stdlib.Bigarray.int8_unsigned_elt, Stdlib.Bigarray.c_layout)
      Stdlib.Bigarray.Array1.t
  type t
  val zero : Sha1.t
  external init : unit -> Sha1.ctx = "stub_sha1_init"
  external unsafe_update_substring : Sha1.ctx -> string -> int -> int -> unit
    = "stub_sha1_update"
  val update_substring : Sha1.ctx -> string -> int -> int -> unit
  val update_string : Sha1.ctx -> string -> unit
  external update_buffer : Sha1.ctx -> Sha1.buf -> unit
    = "stub_sha1_update_bigarray"
  external finalize : Sha1.ctx -> Sha1.t = "stub_sha1_finalize"
  external copy : Sha1.ctx -> Sha1.ctx = "stub_sha1_copy"
  val string : string -> Sha1.t
  val substring : string -> int -> int -> Sha1.t
  val channel : Stdlib.in_channel -> int -> Sha1.t
  val file : string -> Sha1.t
  val file_fast : string -> Sha1.t
  val output : Stdlib.out_channel -> Sha1.t -> unit
  val input : Stdlib.in_channel -> Sha1.t
  val to_bin : Sha1.t -> string
  val to_hex : Sha1.t -> string
  val equal : Sha1.t -> Sha1.t -> bool
  val of_bin : bytes -> Sha1.t
  val of_hex : string -> Sha1.t
end