Botan is a crypto library written in C++. It provides a variety of cryptographic algorithms, including common ones such as AES, MD5, SHA, HMAC, RSA, Diffie-Hellman, DSA, and ECDSA, as well as many others that are more obscure or specialized. It also offers SSL/TLS (client and server), X.509v3 certificates and CRLs, and PKCS #10 certificate requests. A message processing system that uses a filter/pipeline metaphor allows for many common cryptographic tasks to be completed with just a few lines of code. Assembly and SIMD optimizations for common CPUs offers speedups for critical algorithms like AES and SHA-1.
| Tags | Security Cryptography Software Development Libraries Mathematics |
|---|---|
| Licenses | BSD Revised |
| Operating Systems | Linux Mac OS X Windows Windows Windows FreeBSD NetBSD Solaris |
| Implementation | C++ Assembly |
Recent releases


Release Notes: This release fixes a race condition that could cause memory corruption in multithreaded applications.


Release Notes: This release fixes a race condition that could cause memory corruption in multithreaded applications.


Release Notes: This release adds SSL/TLS (both client and server mode, up to TLS v1.1), the GOST 34.10-2001 signature scheme, the Keccak hash function, the XSalsa20 stream cipher, bcrypt password hashing, AES key wrapping, dynamically loaded engines, and a number of other features. New optimizations for AES, Serpent, ECDH, ECDSA, and SHA-2 are also included.


Release Notes: The SSL implementation can now be used with Visual C++ 2010's TR1 implementation. Numerous optimizations for the ECC algorithms provide 20 to 50% performance improvements. Some portability bugs affecting Solaris users were fixed, as were bugs that were triggered under the Visual C++ 2010 and Clang compilers. A bug that could cause denial of service to users verifying GOST 34.10 signatures was also fixed.


Release Notes: This release adds some new options for controlling use of Sphinx and Doxygen for generating documentation. A bug that broke runtime feature detection on x86 processors has been fixed. Support for the BeOS clone/continuation Haiku has been improved. This is the third and hopefully final release candidate for the next stable tree.
A tool for setup and on-demand mounting of encrypted filesystems under Linux.
A .NET component for the generation and recognition of Linear and 2D barcodes.