Botan is a C++ cryptography library that provides production-grade cryptographic tools for building secure systems.
The library addresses the need for a comprehensive, well-tested cryptography implementation by offering support for modern protocols like TLSv1.3, X.509 PKI infrastructure, authenticated encryption ciphers, hardware security modules via PKCS#11 and TPM, memory-hard password hashing, and post-quantum cryptography algorithms. Its modular build system allows fine-grained control over which features to include, and it supports both traditional builds and amalgamation builds for simplified integration.
Botan suits projects requiring robust cryptographic foundations in C++ environments. The library provides native APIs for C++, C, and Python, with additional language bindings available through the community. A command-line interface is included for cryptographic operations outside of programmatic use. Teams choosing this library should expect comprehensive documentation and a mature feature set covering both classical and emerging cryptographic standards. The extensive test suite, including automated side-channel detection, indicates a focus on security correctness rather than just feature breadth.
The project maintains continuous integration with both standard and nightly test runs, tracks code coverage, participates in fuzzing programs, and holds security best practices certifications. Releases are cryptographically signed and made available through major Linux distributions and package managers. The development process welcomes contributions through GitHub, with a dedicated security reporting channel for vulnerability disclosure.