100% PUBLIC DOMAIN: see ftp://ftp.funet.fi/pub/crypt/hash/sha/sha1.c