Botan is a C++ library of cryptographic algorithms, including AES, DES, SHA-1, RSA, DSA, Diffie-Hellman, and many others. It also supports X.509 certificates and CRLs, and PKCS #10 certificate requests, and has a high level filter/pipe message processing system. The library is easily portable to most systems and compilers, and includes a substantial tutorial and API reference.
| Tags | Security Cryptography Software Development Libraries Scientific/Engineering Mathematics |
|---|---|
| Licenses | BSD Revised |
| Operating Systems | POSIX Linux BeOS Mac OS X Windows Windows Windows Unix |
| Implementation | C++ Assembly |
Recent releases


Changes: The entropy polling component of the PRNG has been redesigned somewhat, and should be somewhat faster on common Unix platforms such as Linux and FreeBSD. An implementation of the Russian GOST 34.11 hash function was added, as was support for alternative sbox parameters for the GOST 28147 block cipher. A bug in botan-config affecting use on Mac OS X was also fixed.


Changes: Memory leaks in PKCS8::load_key and PKCS8::encrypt_key were plugged. A spurious Valgrind warning that triggered on some 32-bit Linux systems is now avoided. The botan-config script in previous releases did not operate properly on systems where echo does not support the -n option, such as Mac OS X and Solaris 10. The API reference manual was previously licensed as Creative Commons Attribution-ShareAlike, but it is now distributed under the same BSD license as the rest of Botan.


Changes: This is the first release of the new stable tree. New algorithms now available include ECDSA and ECDH, SHA-224, Salsa20, CBC-MAC, Noekeon, and the SSLv3/TLSv1 PRF and MAC functions. Card Verifiable Certificates, used in ePassports, were also added. IPv4 addresses are now supported in X.509 alternative name extensions. DSA keys larger than 1024 bits can now be created. 1.8 also features the benefits of roughly two years worth of effort in optimizing key algorithms and cleaning up the codebase.


Changes: This is the third release candidate for Botan 1.8.0. This release fixes a bug that prevented interoperability using the EMSA3/PKCS1v1.5 signature padding scheme with the SHA-512 hash function. A bug preventing the EGD/PRNGD entropy poller from working properly was also fixed. A variant of EMSA3 called EMSA3_Raw (or CKM_RSA_PKCS in PKCS #11) was added, as was support for using the SHA-224 hash function with the EMSA2 and EMSA3 padding schemes.


Changes: This release optimizes most hash function implementations, particularly MD4 and Tiger, both of which are over 10% faster on x86-64. It reduces the time needed for entropy polling by using better caching and buffering techniques. Using C++ TR1 (enabling ECDSA support) is on by default with GNU C++ and Intel C++. This is the second release candidate for 1.8.0.