# Class type Cryptokit.hash

    class type hash = object .. end

A hash is a function that maps arbitrarily-long character sequences to small, fixed-size strings.

    method add_substring : bytes -> int -> int -> unit

`add_substring b pos len` adds `len` characters from byte array `b`, starting at character number `pos`, to the running hash computation.

    method add_string : string -> unit

`add_string str` adds all characters of string `str` to the running hash computation.

    method add_char : char -> unit

`add_char c` adds character `c` to the running hash computation.

    method add_byte : int -> unit

`add_byte b` adds the character having code `b` to the running hash computation. `b` must be between `0` and `255` inclusive.

    method result : string

Terminate the hash computation and return the hash value for the input data provided via the `add_*` methods. The hash value is a string of length `hash_size` characters. After calling `result`, the hash can no longer accept additional data. Hence, do not call any of the `add_*` methods after `result`.

    method hash_size : int

Return the size of hash values produced by this hash function, in bytes.

    method wipe : unit

Erase all internal buffers and data structures of this hash, overwriting them with zeroes. See `Cryptokit.transform.wipe`.