Botan (formerly OpenCL) aims to be a portable, easy to use, and efficient C++ crypto library. It currently supports the following algorithms: Public Key Algorithms: Diffie-Hellman, DSA, ElGamal, Nyberg-Rueppel, Rabin-Williams, RSA Block Ciphers: Blowfish, CAST256, CAST5, CS-Cipher, DES, GOST, IDEA, Lion, Luby-Rackoff, MISTY1, RC2, RC5, RC6, Rijndael, SAFER-SK128, Serpent, SHARK, Skipjack, Square, TEA, Threeway, Twofish, XTEA Stream Ciphers: ARC4, ISAAC, SEAL Hash Functions: HAVAL, MD2, MD4, MD5, RIPEMD-128, RIPEMD-160, SHA-1, SHA2-256, SHA2-512, Tiger, Whirlpool MACs: EMAC, HMAC, MD5-MAC, ANSI X9.19 MAC Misc: Adler32, CRC24, CRC32, Randpool, X9.17 RNG Cipher Modes: CBC w/ Padding, CTS, CFB, OFB, Counter WWW: http://botan.randombit.net/