Botan is a crypto library for C++ released under the permissive BSD-2 (or FreeBSD) license.
It provides most any cryptographic algorithm you might be looking for, along with Transport Layer Security (TLS), X.509 certs, CRLs, and path validation, a pipeline-style message processing system, bcrypt password hashing, and other useful things. A third party open source implementation of SSHv2 that uses botan is also available. In addition to C++ you can use botan from Python or Perl (both included in tree), or with Node.js.
See the Frequently Asked Questions for a list of common questions and answers.
See Getting The Latest Sources for information about getting the latest version.
The core of botan is written in C++11 (or C++98 for versions up to and including 1.10) 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.
It 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 has more than a few known users and is already included in most major package distributions, including Fedora, EPEL (for RHEL/CentOS), Debian, Ubuntu, Gentoo, Arch Linux, Slackbuild, FreeBSD, NetBSD, Cygwin, MacPorts, OpenPKG, and T2 SDE
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, a number of individuals and organizations have contributed. Check out the release notes for more project history.
If you need help or have questions, send a mail to the development mailing list. Patches, “philosophical” bug reports, announcements of programs using the library, and related topics are also welcome. If you find what you believe to be a bug, please file a ticket in Bugzilla.
A useful reference while reading this manual is the Doxygen documentation.