LIBTRHASH ========= This bundles some useful hashing and encoding functions. Part of this comes from taskrambler, other are added later. Currently it contains code to create an sha1 hash, Uuids Version 1, 3 and 5 and code to hexencode or decode in a charset independent way. The idea for this is taken from the base64 code in the linux core utils. ### Hashing: sha1 md5 ### When OpenSSL is available it is used for sha1 or md5 creation because it is really hard to outperform it. Anyway, if for some reason OpenSSL is not available I have alternative code in place here. The C implementation without SSE intrisics is created by myself. The vectorized SSE intrisics code is public domain and from [this page](http://arctic.org/~dean/crypto/sha1.html). On my system the implementation without intrisics is 4 times slower than the OpenSSL code whereas the intrisics code is just marginally slower. In future I will add own md5 code to make this library independet from OpenSSL if needed. ### Uuid ### This is just an addon on to the utils-linux implementation of DCE uuid's done by Theodore Y. Ts'o. It wraps uuids in my class system right now and adds version 3 and version 5 uuid. Anyway, this will only work on linux as it's build around the util-linux code. ### encoding ### Currently this contains code hexencode and hexdecode data in a charset independent way. As a special case of hexdecoding a urldecode function is also available. In the near future code to urlencode and base64 encode and decode code will be added. INSTALLATION ------------ This can be installed via the usual configure, make, make install cycle. For gentoo users am ebuild is added under docs. ### API DOC ### To generate the api doc a patched version of doxygen is neccessary. A patch is included under docs. `make docs` creates the api doc. USAGE ----- ### API ### ### EXAMPLE ### TESTING ------- No tests right now... sorry. ### REQUIREMENTS CONTRIBUTION ------------ I would really like to see some people possibly interested in this stuff. I think it contains some really interesting ideas. If you like to contribute anyway, make a fork, do your changes and generate a pull request. Or simply contact me on georg@steffers.org.