Botan, a friendly C++ crypto library

Botan is a BSD-licensed crypto library for C++. It provides applications with the ability to use a number of cryptographic algorithms, as well as SSL/TLS, X.509 certificates and CRLs, PKCS #10 certificate requests, a filter/pipe message processing system, and a wide variety of other features. The API reference, tutorial, and examples may help impart the flavor of the library. If these whet your appetite, perhaps give the latest release a try?

The core of botan is written in portable C++98 with no dependencies besides the STL and the rest of the ISO standard library, but the library also includes optional modules which make further assumptions about their environment, providing features such as compression (using zlib or bzip2), entropy gathering, and secure memory allocation. Assembly implementations of key algorithms like SHA-1 and multiple precision integer routines for x86 and x86-64 processors are also included.

Botan runs on most common operating systems and can be used with a number of different commercial and open source compilers. The build log contains information about recently tested targets.

It was started as a personal project by Jack Lloyd, who continues to be the maintainer and release manager. Since the first release in 2001, many individuals and organizations have contributed bug fixes and new features. There have been over 130 releases in the 9 years since the first announcement; the release notes and news archive have more information about the release history.

In addition to C++ you can use botan from Python or Perl, though the current bindings only wrap portions of the library. A third party open source implementation of SSHv2 that uses botan is also available.

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.