Botan is a BSD-licensed crypto library written in C++. It provides a wide variety of cryptographic algorithms, formats, and protocols. It has been considered stable since 2002. The license makes it free for use as part of any commercial or free software without restriction. Those who desire it can also purchase a commercial support contract, or arrange for custom development work.
Botan runs on Linux and most Unix systems, MacOS X, and Microsoft Windows. It is written with portability in mind, and runs on x86, x86-64, IA-64, PowerPC, SPARC, Alpha, MIPS, and ARM procesors, and in addition attempts to be portable to any reasonably conforming C++98 compiler. The library also includes optional platform-specific modules which provide services such as compression (using zlib or bzip2), entropy gathering, secure memory allocation, and support for hardware crypto devices. It also includes assembly implementations of key algorithms like low level MPI routines and SHA-1 for x86 and x86-64 processors.
Botan ships in several package sets, including: Gentoo, Debian testing and unstable, openSUSE, FreeBSD ports, NetBSD pkgsrc, OpenPKG, Darwinports, Sorcerer Linux, and the dries and dag RedHat/Fedora repos.
See the FAQ for a list of common questions and answers. If you need help or have questions, please send an email to the development mailing list.
If this software is useful for you, please consider donating.
Botan 1.7.6 has been released. It is primarily a code cleanup release; the end goal being the removal of most or all shared mutable state from the library.
There will be a minor change in how Botan is licensed, starting with the next release.
Botan 1.7.4 is now out with several new optimizations, including some especially for x86-64 systems.
Botan 1.6.4 is released. The only change versus 1.6.3 is a compliation fix for Visual Studio C++ 2003.
tar/gzip (sig) / tar/bzip2 (sig)
tar/gzip (sig) / tar/bzip2 (sig)
Older versions can be found in the archives
Botan currently includes the following cryptographic algorithms:
In addition, there is support for all or parts of: IEEE 1363-2000/1363a, X.509v3/PKIX certificates, PKCS #1/#3/#5/#8/#10, ANSI X9.{9,19,23,30,31,32}, FIPS 46-3/180-1/186-2, and various other standards. Interfaces of various levels of flexibility/complexity are included in the library, and are described in the included documentation.