Botan is a C++ class library for performing a wide variety of cryptographic operations. It includes support for the following algorithms and formats: Public Key Algorithms * Encryption algorithms RSA, ElGamal, DLIES (padding schemes OAEP, PKCS #1 v1.5) * Signature algorithms RSA, DSA, ECDSA, Nyberg-Rueppel, Rabin-Williams (padding schemes PSS, PKCS #1 v1.5, X9.31) * Key agreement techniques Diffie-Hellman and ECKAEG (ECDH) Ciphers * Block cipher modes ECB, CBC, CBC/CTS, CFB, OFB, and CTR, and authenticated cipher mode EAX * AES (Rijndael) and AES candidates Serpent, Twofish, MARS, CAST-256, RC6 * DES, and variants 3DES and DESX * Stream ciphers ARC4, Salsa20, Turing, and WiderWake4+1 * National/telecom block ciphers SEED, KASUMI, MISTY1, GOST, and Skipjack * Other block ciphers including Blowfish, CAST-128, IDEA, Noekeon, TEA, XTEA, RC2, RC5, SAFER-SK, and Square * Block cipher constructions Luby-Rackoff and Lion Hash Functions and MACs * Authentication codes HMAC, CMAC (aka OMAC1), CBC-MAC, ANSI X9.19 DES-MAC, and the protocol-specific SSLv3 authentication code * Secure hashes SHA-224, SHA-256, SHA-384, SHA-512, Whirlpool * Transition hashes SHA-1, Tiger, RIPEMD-160, RIPEMD-128, HAS-160, FORK-256 * Obsolete/broken hashes MD2, MD4, MD5 * Checksums Adler32, CRC24, CRC32 Certificates * X.509 certificates (including generating new self-signed and CA certs) * X.509 CRLs * PKCS #10 certificate requests * Card Verifiable Certificates (used in ePassports) PBKDFs, KDFs, and PRFs * PBKDF1 from PKCS #5 v1.5 * PBKDF2 from PKCS #5 v2.0 * OpenPGP S2K (string to key) from RFC 2440 * KDF1 and KDF2 from IEEE 1363 * PRFs from ANSI X9.42, SSL v3.0, TLS v1.0 For build instructions, read 'doc/building.pdf'. The license can be found in 'doc/license.txt', and the ChangeLog is in 'doc/log.txt'. Higher level protocols are implemented on top of Botan by: NetSieben SSH Library (SSHv2): http://www.netsieben.com/products/ssh/ Ajisai (SSLv3/TLSv1): http://www.randombit.net/code/ajisai/ Check http://botan.randombit.net/ for announcements and news. If you'll be developing code using Botan, consider joining the mailing lists; links to subscriptions forms and the archives can be found on the web page. Feel free to contact me with any questions or comments. Regards, Jack Lloyd (lloyd@randombit.net)