cryptography is a package designed to expose cryptographic primitives and recipes to Python developers.
Find a file
Paul Kehrer 5bd0c10d50
allow parsing of nonstandard country name and jurisdiction country name (#6641)
The spec requires both of these to be exactly two characters to
correspond with ISO country codes. Reality is sometimes messier, so this
allows parsing (but not encoding) of this invalid data. Parsing will
raise a UserWarning if incorrect lengths are detected.
2021-11-21 03:16:43 +00:00
.github Added a CI job for 3.11-dev (#6637) 2021-11-21 07:17:52 +08:00
.zuul.d split up arm64 wheel build jobs for speed (#6431) 2021-10-17 22:05:11 -04:00
.zuul.playbooks/playbooks Revert "Ban cffi version that makes CI sad (#6418)" (#6441) 2021-10-19 19:45:04 +08:00
docs allow parsing of nonstandard country name and jurisdiction country name (#6641) 2021-11-21 03:16:43 +00:00
src allow parsing of nonstandard country name and jurisdiction country name (#6641) 2021-11-21 03:16:43 +00:00
tests allow parsing of nonstandard country name and jurisdiction country name (#6641) 2021-11-21 03:16:43 +00:00
vectors allow parsing of nonstandard country name and jurisdiction country name (#6641) 2021-11-21 03:16:43 +00:00
.coveragerc Added more paths to coverage path combiner (#5983) 2021-04-18 21:06:51 -05:00
.gitattributes test py27 with windows container on azure (#4880) 2019-05-08 18:29:42 -04:00
.gitignore Integrate Rust into the build process properly (#5410) 2020-12-22 13:33:47 -06:00
.readthedocs.yml Replace broken viewcode with linkcode in doc (#6207) 2021-10-03 06:10:10 +08:00
CHANGELOG.rst remind people we're going to remove verifier/signer (#6640) 2021-11-21 01:58:29 +00:00
codecov.yml revert codecov.yml workaround and pin coverage to 4.3.4 (#3662) 2017-06-03 14:26:56 -04:00
CONTRIBUTING.rst link the CONTRIBUTING.rst to the development section of our docs 2014-03-02 09:23:46 -04:00
dev-requirements.txt goodbye azure (#5207) 2020-04-19 20:32:28 -04:00
LICENSE Always rely on OpenSSL's builtin locking callbacks (#5561) 2020-11-11 13:35:47 -06:00
LICENSE.APACHE HTTPS a bunch of links in random places (#4666) 2018-12-31 10:10:09 -06:00
LICENSE.BSD Added new license files. Refs #1209 2014-10-31 07:51:41 -07:00
LICENSE.PSF C locking callback (#3226) 2016-11-13 12:55:22 -08:00
MANIFEST.in fixes #5975 -- added typing stubs for rust module (#5976) 2021-04-15 10:02:09 -05:00
pyproject.toml Make --capture=no and --strict-markers enabled by default for pytest (#6598) 2021-11-13 04:56:24 +08:00
README.rst Update IRC in the README as well (#6055) 2021-05-19 15:26:15 -05:00
release.py release.py event we want is push not create (#6334) 2021-09-29 22:18:50 -04:00
setup.cfg deprecate backend part 5 of n (#6523) 2021-11-03 07:22:58 -04:00
setup.py update setup.py links to the canonical URL (#6284) 2021-09-19 07:52:10 -04:00
tox.ini Make --capture=no and --strict-markers enabled by default for pytest (#6598) 2021-11-13 04:56:24 +08:00

pyca/cryptography
=================

.. image:: https://img.shields.io/pypi/v/cryptography.svg
    :target: https://pypi.org/project/cryptography/
    :alt: Latest Version

.. image:: https://readthedocs.org/projects/cryptography/badge/?version=latest
    :target: https://cryptography.io
    :alt: Latest Docs

.. image:: https://github.com/pyca/cryptography/workflows/CI/badge.svg?branch=main
    :target: https://github.com/pyca/cryptography/actions?query=workflow%3ACI+branch%3Amain

.. image:: https://codecov.io/github/pyca/cryptography/coverage.svg?branch=main
    :target: https://codecov.io/github/pyca/cryptography?branch=main


``cryptography`` is a package which provides cryptographic recipes and
primitives to Python developers.  Our goal is for it to be your "cryptographic
standard library". It supports Python 3.6+ and PyPy3 7.2+.

``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.'

You can find more information in the `documentation`_.

You can install ``cryptography`` with:

.. code-block:: console

    $ pip install cryptography

For full details see `the installation documentation`_.

Discussion
~~~~~~~~~~

If you run into bugs, you can file them in our `issue tracker`_.

We maintain a `cryptography-dev`_ mailing list for development discussion.

You can also join ``#pyca`` on ``irc.libera.chat`` to ask questions or get
involved.

Security
~~~~~~~~

Need to report a security issue? Please consult our `security reporting`_
documentation.


.. _`documentation`: https://cryptography.io/
.. _`the installation documentation`: https://cryptography.io/en/latest/installation.html
.. _`issue tracker`: https://github.com/pyca/cryptography/issues
.. _`cryptography-dev`: https://mail.python.org/mailman/listinfo/cryptography-dev
.. _`security reporting`: https://cryptography.io/en/latest/security.html