portbase is a portable base services library for C. Portbase is tested on all machines I have access to.
Currently, this list includes all of the machines on the sourceforge.net compile farm, as well as my own Windows 2000 and OpenBSD machines.
Expect portbase to compile without warnings on these platforms, and the test suite to run without errors (see the Portability Notes for exceptions to this.)
Here are some key features of "portbase":
· Data integrity functions. CRC8, 16 and 32.
· Message digest functions. MD5, SHA-1 and SHA-512.
· Keyed-digest functions. HMAC-MD5 and HMAC-SHA1.
· Block cipher. 16-rounds Blowfish (with and without CBC mode).
· Strong cryptograhic authentication and key exchange. SRP-6.
· Randomizer. Pseudo-randomizer with a period of 28222, fully controllable.
· Threading, including mutexes and per-thread data.
· Time and date functions, including timer functions.
· Directory reading (list of files, ownership, permissions etc).
· Fairly comprehensive string functionality, including number-mapping and sounds-like.
· Basic but user-friendly URI parsing.
· Linked-list functions.
· AVL tree functions (self-balancing binary tree).
· TCP and UDP networking.