The HMAC support implements the basics for message authentication, following RFC 2104. In the later versions some key generation algorithms, which use hash algorithms, have been added. The manpage for mhash is mhash.3.html.
At the time of writing this, the library supports the algorithms:
SHA1, SHA160, SHA192, SHA224, SHA384, SHA512, HAVAL128, HAVAL160, HAVAL192, HAVAL224, HAVAL256, RIPEMD128, RIPEMD256, RIPEMD320, MD4, MD5, TIGER, TIGER128, TIGER160, ALDER32, CRC32, CRC32b, WHIRLPOOL, GOST, SNEFRU128, SNEFRU256
Mapping these to bitlengths, we can see:
|MD||2, 4, 5|
Y : The name is suffixed by the bit-length
Number : The name is suffixed by this number
ONL : There is no suffix
I : The hash is not secure at this length
X : The hash has been padded and is not as strong as the bit-length suggests
Here you can download mhash source code
Note: Win32 DLLs have been removed. Use cygwin to compile.
Access to the mhash CVS repository is available through anonymous cvs:
To access it enter the following commands:
To compile from cvs, first run the buildconf script. It needs these programs: autoconf, automake and libtool. All these programs can be found at the nearest GNU mirror.
Gustavo Niemeyer has developed a comprehensive Python interface to mhash. You may find it at http://labix.org/python-mhash.
nettle: A low level crypto library
The sourceforge mhash project page
shash: A program that uses libmhash to produce secure message digests
gtk-splitter: A utility which splits files.
Additional information on hashing can be found at the Hashing Function Lounge, including a summary of what algorithms have known security flaws.
The authors of libmhash are Nikos Mavroyanopoulos and Sascha Schumann. Please don't contact the authors directly for questions about libmhash, use the developers mailing list instead.