You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
2.6 KiB
95 lines
2.6 KiB
Welcome to ``pyca/cryptography``
|
|
================================
|
|
|
|
``cryptography`` includes both high level recipes and low level interfaces to
|
|
common cryptographic algorithms such as symmetric ciphers, message digests, and
|
|
key derivation functions. For example, to encrypt something with
|
|
``cryptography``'s high level symmetric encryption recipe:
|
|
|
|
.. code-block:: pycon
|
|
|
|
>>> from cryptography.fernet import Fernet
|
|
>>> # Put this somewhere safe!
|
|
>>> key = Fernet.generate_key()
|
|
>>> f = Fernet(key)
|
|
>>> token = f.encrypt(b"A really secret message. Not for prying eyes.")
|
|
>>> token
|
|
'...'
|
|
>>> f.decrypt(token)
|
|
'A really secret message. Not for prying eyes.'
|
|
|
|
If you are interested in learning more about the field of cryptography, we
|
|
recommend `Crypto 101, by Laurens Van Houtven`_.
|
|
|
|
Installation
|
|
------------
|
|
You can install ``cryptography`` with ``pip``:
|
|
|
|
.. code-block:: console
|
|
|
|
$ pip install cryptography
|
|
|
|
See :doc:`Installation <installation>` for more information.
|
|
|
|
.. _cryptography-layout:
|
|
|
|
|
|
Layout
|
|
------
|
|
|
|
``cryptography`` is broadly divided into two levels. One with safe
|
|
cryptographic recipes that require little to no configuration choices. These
|
|
are safe and easy to use and don't require developers to make many decisions.
|
|
|
|
The other level is low-level cryptographic primitives. These are often
|
|
dangerous and can be used incorrectly. They require making decisions and having
|
|
an in-depth knowledge of the cryptographic concepts at work. Because of the
|
|
potential danger in working at this level, this is referred to as the
|
|
"hazardous materials" or "hazmat" layer. These live in the
|
|
``cryptography.hazmat`` package, and their documentation will always contain an
|
|
admonition at the top.
|
|
|
|
We recommend using the recipes layer whenever possible, and falling back to the
|
|
hazmat layer only when necessary.
|
|
|
|
.. toctree::
|
|
:maxdepth: 2
|
|
:caption: The recipes layer
|
|
|
|
fernet
|
|
x509/index
|
|
|
|
.. toctree::
|
|
:maxdepth: 2
|
|
:caption: The hazardous materials layer
|
|
|
|
hazmat/primitives/index
|
|
exceptions
|
|
random-numbers
|
|
hazmat/backends/index
|
|
hazmat/bindings/index
|
|
|
|
.. toctree::
|
|
:maxdepth: 2
|
|
:caption: The cryptography open source project
|
|
|
|
installation
|
|
changelog
|
|
faq
|
|
development/index
|
|
security
|
|
limitations
|
|
api-stability
|
|
doing-a-release
|
|
community
|
|
glossary
|
|
|
|
|
|
.. note::
|
|
|
|
``cryptography`` has not been subjected to an external audit of its code or
|
|
documentation. If you're interested in discussing an audit please
|
|
:doc:`get in touch </community>`.
|
|
|
|
.. _`Crypto 101, by Laurens Van Houtven`: https://www.crypto101.io/
|