Getting started

Development dependencies

Working on cryptography requires the installation of a small number of development dependencies in addition to the dependencies for Installation (including Rust). These are handled by the use of nox, which can be installed with pip.

$ # Create a virtualenv and activate it
$ # Set up your cryptography build environment
$ pip install nox
$ nox -e local

OpenSSL on macOS

You must have installed OpenSSL (via Homebrew , MacPorts) before invoking nox or else pip will fail to compile.

Running tests

cryptography unit tests are found in the tests/ directory and are designed to be run using pytest. nox automatically invokes pytest and other required checks for cryptography:

$ nox -e local

You can also specify a subset of tests to run as positional arguments:

$ # run the whole x509 testsuite, plus the fernet tests
$ nox -e local -- tests/x509/ tests/test_fernet.py

Building the docs

Building the docs on non-Windows platforms requires manually installing the C library libenchant (installation instructions). The docs can be built using nox:

$ nox -e docs