randombit / botan

Cryptography Toolkit
https://botan.randombit.net
BSD 2-Clause "Simplified" License
2.55k stars 562 forks source link
c-plus-plus crypto cryptography cryptography-library tls x509

Botan: Crypto and TLS for Modern C++

Botan (Japanese for peony flower) is a C++ cryptography library released under the permissive Simplified BSD <https://botan.randombit.net/license.txt>_ license.

Botan's goal is to be the best option for cryptography in C++ by offering the tools necessary to implement a range of practical systems, such as TLS protocol, X.509 certificates, modern AEAD ciphers, PKCS#11 and TPM hardware support, password hashing, and post quantum crypto schemes. A Python binding is included, and several other language bindings <https://github.com/randombit/botan/wiki/Language-Bindings> are available. The library is accompanied by a featureful command line interface <https://botan.randombit.net/handbook/cli.html>.

See the documentation <https://botan.randombit.net/handbook>_ for more information about included features.

Development is coordinated on GitHub <https://github.com/randombit/botan> and contributions are welcome. If you need help, please open an issue on GitHub <https://github.com/randombit/botan/issues>.

If you think you have found a security issue, see the security page <https://botan.randombit.net/security.html>_ for contact information.

|ci_status| |nightly_ci_status| |coverage| |ossfuzz| |repo| |ossf| |cii|

.. |ci_status| image:: https://github.com/randombit/botan/actions/workflows/ci.yml/badge.svg?branch=master :target: https://github.com/randombit/botan/actions/workflows/ci.yml :alt: CI status

.. |nightly_ci_status| image:: https://github.com/randombit/botan/actions/workflows/nightly.yml/badge.svg?branch=master :target: https://github.com/randombit/botan/actions/workflows/nightly.yml :alt: nightly CI status

.. |coverage| image:: https://img.shields.io/coverallsCoverage/github/randombit/botan?branch=master :target: https://coveralls.io/github/randombit/botan :alt: Coverage report

.. |ossfuzz| image:: https://oss-fuzz-build-logs.storage.googleapis.com/badges/botan.svg :target: https://oss-fuzz.com/coverage-report/job/libfuzzer_asan_botan/latest :alt: OSS-Fuzz status

.. |repo| image:: https://repology.org/badge/tiny-repos/botan.svg :target: https://repology.org/project/botan/versions :alt: Packaging status

.. |ossf| image:: https://api.securityscorecards.dev/projects/github.com/randombit/botan/badge :target: https://securityscorecards.dev/viewer/?uri=github.com/randombit/botan :alt: OSSF Scorecard

.. |cii| image:: https://bestpractices.coreinfrastructure.org/projects/531/badge :target: https://bestpractices.coreinfrastructure.org/projects/531 :alt: CII Best Practices statement

Releases ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The latest release from the Botan3 release series is 3.5.0 <https://botan.randombit.net/releases/Botan-3.5.0.tar.xz>_ (sig) <https://botan.randombit.net/releases/Botan-3.5.0.tar.xz.asc>__, released on 2024-07-08.

The latest release from the Botan2 release series is 2.19.5 <https://botan.randombit.net/releases/Botan-2.19.5.tar.xz>_ (sig) <https://botan.randombit.net/releases/Botan-2.19.5.tar.xz.asc>__, released on 2024-07-08. Be aware that Botan2 is currently scheduled to reach end of life at the end of 2024.

All releases are signed with a PGP key <https://botan.randombit.net/pgpkey.txt>. See the release notes <https://botan.randombit.net/news.html> for what is new. Botan is also available through most distributions <https://github.com/randombit/botan/wiki/Distros>_ such as Fedora, Debian, Arch and Homebrew.

Find Enclosed ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Transport Layer Security (TLS) Protocol

Public Key Infrastructure

Public Key Cryptography

Ciphers, hashes, MACs, and checksums

Other Useful Things