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.

News

May 5, 2008

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.

April 9, 2008

There will be a minor change in how Botan is licensed, starting with the next release.

March 10, 2008

Botan 1.7.4 is now out with several new optimizations, including some especially for x86-64 systems.

March 8, 2008

Botan 1.6.4 is released. The only change versus 1.6.3 is a compliation fix for Visual Studio C++ 2003.

(older news)

Current Stable Release: 1.6.4

tar/gzip (sig) / tar/bzip2 (sig)

Current Development Release: 1.7.6

tar/gzip (sig) / tar/bzip2 (sig)

Older versions can be found in the archives

Algorithms

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.

Users of Botan