Implementation of the MD5, SHA1, SHA224, and SHA256 hashing functions with a library interface