1
0
Fork 0
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%
Find a file
Paul Kehrer cdaac7bad5
Use uv-managed Python for the remaining workflows (#15622)
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>
2026-09-11 07:40:01 -04:00
.github Use uv-managed Python for the remaining workflows (#15622) 2026-09-11 07:40:01 -04:00
docs Point the ECDH performance citation at the paper's landing page (#15623) 2026-09-10 21:59:02 -04:00
src Only pre-key one cipher context for direction-independent AEADs (#15614) 2026-09-10 20:57:43 -05:00
tests Implement Fernet in Rust (#15592) 2026-09-05 21:29:13 +00:00
vectors reopen main for development (#15373) 2026-07-31 10:09:41 -05:00
.gitattributes test py27 with windows container on azure (#4880) 2019-05-08 18:29:42 -04:00
.gitignore CHANGELOG: record new X.509 client verification APIs (#10615) 2024-03-21 01:15:24 +00:00
.readthedocs.yml Update Read the Docs config: ubuntu 26.04, Python 3.14, uv installs (#15160) 2026-07-05 13:02:02 -04:00
AGENTS.md make the admission to use nox only stronger (#14937) 2026-06-03 06:31:23 -06:00
Cargo.lock chore(deps): bump bitflags from 2.13.1 to 2.13.2 (#15615) 2026-09-10 06:50:04 -04:00
Cargo.toml reopen main for development (#15373) 2026-07-31 10:09:41 -05:00
CHANGELOG.rst Deprecate DSA (#15597) 2026-09-05 14:14:41 -07:00
ci-constraints-requirements.txt chore(deps): bump uv from 0.12.12 to 0.12.13 (#15626) 2026-09-11 07:37:21 -04:00
CLAUDE.md Add AGENTS.md with CLAUDE.md symlink (#14794) 2026-05-04 18:41:15 -04:00
CONTRIBUTING.rst link the CONTRIBUTING.rst to the development section of our docs 2014-03-02 09:23:46 -04:00
LICENSE drop support for openssl < 1.1.1d (#8449) 2023-03-24 08:36:58 -04: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
noxfile.py Enable debug logging for uv in CI and nox installs (#15177) 2026-07-06 02:14:47 +00:00
pyproject.toml Build abi3.abi3t wheels for CPython 3.15+ (#15496) 2026-09-05 07:38:05 -04:00
README.rst Raise minimum supported Python version to 3.9 (#14739) 2026-04-25 09:58:51 -05:00
release.py Bump Rust workspace crate versions as part of bump-version (#15003) 2026-06-10 10:32:45 -07: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/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/