mirror of
https://github.com/pyca/cryptography.git
synced 2026-09-19 19:10:55 +00:00
cryptography is a package designed to expose cryptographic primitives and recipes to Python developers.
https://cryptography.io
- Python 66.5%
- Rust 33.5%
benchmark, linkcheck and pypi-publish were the last users of actions/setup-python. They get uv from setup-uv with the version pinned by ci-constraints-requirements.txt, as ci.yml and the wheel builder already do. linkcheck's cache key claimed to match the docs job's, but the docs job has run on 3.12 with an OpenSSL component in its key, and rust-cache adds the job id anyway, so it is keyed on the runtime id alone. pypi-publish only needs uv for `uv publish`, so it no longer sets up an interpreter at all. The benchmark comparison script runs on the PR venv's interpreter instead of whatever `python` is on PATH. Claude-Session: https://claude.ai/code/session_0116sWJmeCaubZF2aMbR4kfc Co-authored-by: Claude <noreply@anthropic.com> |
||
|---|---|---|
| .github | ||
| docs | ||
| src | ||
| tests | ||
| vectors | ||
| .gitattributes | ||
| .gitignore | ||
| .readthedocs.yml | ||
| AGENTS.md | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CHANGELOG.rst | ||
| ci-constraints-requirements.txt | ||
| CLAUDE.md | ||
| CONTRIBUTING.rst | ||
| LICENSE | ||
| LICENSE.APACHE | ||
| LICENSE.BSD | ||
| noxfile.py | ||
| pyproject.toml | ||
| README.rst | ||
| release.py | ||
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/actions/workflows/ci.yml/badge.svg
:target: https://github.com/pyca/cryptography/actions/workflows/ci.yml?query=branch%3Amain
``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.9+ and PyPy3 7.3.11+.
``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
b'...'
>>> f.decrypt(token)
b'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/
.. _`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/