If you need to build the library first, start with :doc:`building`. Some Linux distributions include packages for Botan, so building from source may not be required on your system.
.. only:: html The :ref:`genindex` and :ref:`search` may be useful to get started.
.. only:: html and website You can also download this manual as a `PDF <https://botan.randombit.net/handbook/botan.pdf>`_.
Some examples of usage are included in this documentation. However a better source for example code is in the implementation of the command line interface, which was intentionally written to act as practical examples of usage.
You should have some knowledge of cryptography before trying to use the library. This is an area where it is very easy to make mistakes, and where things are often subtle and/or counterintuitive. Obviously the library tries to provide things at a high level precisely to minimize the number of ways things can go wrong, but naive use will almost certainly not result in a secure system.
Especially recommended are:
- Cryptography Engineering by Niels Ferguson, Bruce Schneier, and Tadayoshi Kohno
- Security Engineering -- A Guide to Building Dependable Distributed Systems by Ross Anderson
- Handbook of Applied Cryptography by Alfred J. Menezes, Paul C. Van Oorschot, and Scott A. Vanstone
If you're doing something non-trivial or unique, you might want to at the very least ask for review/input at a place such as the metzdowd or randombit mailing lists or the cryptography stack exchange. And (if possible) pay a professional cryptographer or security company to review your design and code.
.. toctree:: :maxdepth: 1 :numbered: