PolarSSL is a light-weight cryptographic and SSL/TLS library written in C. PolarSSL makes it easy for developers to include cryptographic and SSL/TLS capabilities in their (embedded) applications with as little hassle as possible. Loose coupling of the components inside the library means that it is easy to separate the parts that are needed, without needing to include the total library. PolarSSL is written with embedded systems in mind and has been ported on a number of architectures, including ARM, PowerPC, MIPS, and Motorola 68000. The source is written to have very loose coupling, enabling easy integration of parts in other software projects. Very loosely coupled cryptographic algorithms for MD2, MD4, MD5, SHA1, SHA-256, SHA-512, AES, Camellia, DES, Triple DES, ARC3, and RSA are included.
sphlib provides optimized implementations in both C and Java of cryptographic hash functions. The C code includes "small footprint" variants optimized for architectures with low L1 cache (e.g. WiFi routers running OpenWRT). The C code comes with a command-line tool that can serve as a drop-in replacement for md5sum, sha1sum, sha256sum, etc. for all implemented hash functions. The Java code is compatible with J2ME. There are implementations of fourteen "second-round" SHA-3 candidates, for all output lengths: BLAKE, Blue Midnight Wish, CubeHash, ECHO, Fugue, Grøstl, Hamsi, JH, Keccak, Luffa, Shabal, SHAvite-3, SIMD, and Skein. Some pre-SHA-3 hash functions (including MD4, MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, RIPEMD-160, and others) are also implemented.