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. Many people have contributed to Botan. They are listed in the files license.txt, credits.txt, and thanks.txt, all of which are included in the Botan source distribution. Regards, Jack Lloyd (lloyd@randombit.net)