OBSOLETE
SYNOPSIS
        string sha1(string arg [, int iterations ])
        string sha1(bytes  arg [, int iterations ])
        string sha1(int  * arg [, int iterations ])

DESCRIPTION
        Create and return a SHA1 message digest from <arg>.
        <arg> may be a string, a byte sequence, or an array of numbers
        (each considered to be a byte, ignoring all but the lowest 8 bits).
        A string is converted to a UTF-8 byte sequence of which then the
        digest will be created.

        If <iterations> is given as a number greater than 0, it is
        the number of iterations used in the digest calculation. If omitted,
        the driver executes just one iteration.

        The efun costs 5 ticks per iteration.

EXAMPLES
        string s;

        s = sha1("Hello");
        s = sha1( ({ 'H', 'e', 'l', 'l', 'o' })

HISTORY
        Introduced in LDMud 3.3.523.
        LDMud 3.3.712 added number arrays as argument, and the number
          of iterations.
        LDMud 3.3.717 added the iteration-based evaluation cost.
        Since LDMud 3.3.719 obsoleted by hash().

SEE ALSO
        crypt(E), md5(E), md5_crypt(E), hash(E), hmac(E)
